diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index 5614ca8f5d..b687b88e48 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -34,7 +34,7 @@ msgstr "Zadejte datum"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Zadejte datum"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Poznámky"
@@ -204,18 +204,18 @@ msgstr "Příloha"
msgid "Select file to attach"
msgstr "Vyberte soubor k přiložení"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Odkaz"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Odkaz na externí URL"
@@ -229,12 +229,13 @@ msgstr "Komentář"
msgid "File comment"
msgstr "Komentář k souboru"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Uživatel"
@@ -271,19 +272,20 @@ msgstr "Chyba při přejmenování souboru"
msgid "Invalid choice"
msgstr "Neplatný výběr"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Název"
@@ -292,24 +294,25 @@ msgstr "Název"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Popis"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "nadřazený"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Cesta"
@@ -354,7 +357,7 @@ msgstr "Chyba serveru"
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Musí být platné číslo"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Čeština"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Němčina"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Řečtina"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Angličtina"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Španělština"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Španělština (Mexiko)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Perština"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francouzština"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebrejština"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Maďarština"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italština"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japonština"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Korejština"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Nizozemština"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norština"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polština"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugalština"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugalština (Brazilská)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Ruština"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Švédština"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thajština"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turečtina"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamština"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Čínština"
@@ -652,7 +655,7 @@ msgstr "Rozdělit od nadřazené položky"
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Díl"
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Potvrdit"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Nastavení oprávnění"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Skupina"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Zobrazit"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Oprávnění k zobrazení položek"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Oprávnění přidat položky"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Změnit"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Oprávnění k úpravě položek"
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr "Oprávnění k odstranění položek"
diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po
index 3ca9a7add0..df8184e462 100644
--- a/InvenTree/locale/da/LC_MESSAGES/django.po
+++ b/InvenTree/locale/da/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -34,7 +34,7 @@ msgstr "Angiv dato"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Angiv dato"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Bemærkninger"
@@ -204,18 +204,18 @@ msgstr "Vedhæftning"
msgid "Select file to attach"
msgstr "Vælg fil, der skal vedhæftes"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link til ekstern URL"
@@ -229,12 +229,13 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Bruger"
@@ -271,19 +272,20 @@ msgstr "Fejl ved omdøbning af fil"
msgid "Invalid choice"
msgstr "Ugyldigt valg"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Navn"
@@ -292,24 +294,25 @@ msgstr "Navn"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Beskrivelse"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "overordnet"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Sti"
@@ -354,7 +357,7 @@ msgstr "Serverfejl"
msgid "An error has been logged by the server."
msgstr "En fejl blev logget af serveren."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Skal være et gyldigt tal"
@@ -421,107 +424,107 @@ msgstr "URL til ekstern billedfil"
msgid "Downloading images from remote URL is not enabled"
msgstr "Download af billeder fra ekstern URL er ikke aktiveret"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tjekkisk"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Dansk"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Græsk"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spansk (Mexikansk)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Persisk"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Ungarsk"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Hollandsk"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugisisk"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugisisk (Brasilien)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Kinesisk"
@@ -652,7 +655,7 @@ msgstr "Opdel fra overordnet element"
msgid "Split child item"
msgstr "Opdel underordnet element"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Flettede lagervarer"
@@ -756,7 +759,7 @@ msgstr "Produktionsordre"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Produktionsordrer"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Produktionsordre reference"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Produktionsordre som er tildelt denne produktion"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Produktionsordre som er tildelt denne produktion"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr "Batch kode til dette produktions output"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 352d440c40..d61adab9da 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -34,7 +34,7 @@ msgstr "Datum eingeben"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Datum eingeben"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Notizen"
@@ -204,18 +204,18 @@ msgstr "Anhang"
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
@@ -229,12 +229,13 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Benutzer"
@@ -271,19 +272,20 @@ msgstr "Fehler beim Umbenennen"
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Name"
@@ -292,24 +294,25 @@ msgstr "Name"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Beschreibung"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "Eltern"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Pfad"
@@ -354,7 +357,7 @@ msgstr "Serverfehler"
msgid "An error has been logged by the server."
msgstr "Ein Fehler wurde vom Server protokolliert."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -421,107 +424,107 @@ msgstr "URL der Remote-Bilddatei"
msgid "Downloading images from remote URL is not enabled"
msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tschechisch"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Dänisch"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Persisch"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Ungarisch"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugiesisch (Brasilien)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Chinesisch"
@@ -652,7 +655,7 @@ msgstr "Vom übergeordneten Element geteilt"
msgid "Split child item"
msgstr "Unterobjekt geteilt"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Lagerartikel zusammengeführt"
@@ -756,7 +759,7 @@ msgstr "Bauauftrag"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Bauaufträge"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Teil"
@@ -890,7 +896,7 @@ msgstr "Losnummer"
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Erstelldatum"
@@ -923,7 +929,7 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Externer Link"
@@ -1011,8 +1017,8 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Lagerartikel"
@@ -1022,12 +1028,13 @@ msgstr "Quell-Lagerartikel"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Quell-Lagerartikel"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Anzahl"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -1113,7 +1121,7 @@ msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -1146,9 +1154,10 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Lagerort"
@@ -1162,8 +1171,8 @@ msgstr "Lagerort für fertige Endprodukte"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Status"
@@ -1239,8 +1248,8 @@ msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
msgid "Build order has incomplete outputs"
msgstr "Bauauftrag hat unvollständige Aufbauten"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Stücklisten-Position"
@@ -1406,7 +1415,7 @@ msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Zieldatum"
@@ -1484,8 +1493,8 @@ msgstr "Zugewiesene Teile"
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr "Fertiggestellte Endprodukte"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Anhänge"
@@ -1635,7 +1644,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:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Neuer Bauauftrag"
@@ -1928,9 +1937,9 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Vorlage"
@@ -1938,7 +1947,7 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Baugruppe"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Komponente"
@@ -1958,7 +1967,7 @@ msgstr "Komponente"
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Kaufbar"
@@ -1966,7 +1975,7 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Verkäuflich"
@@ -1975,10 +1984,10 @@ msgstr "Verkäuflich"
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Nachverfolgbar"
@@ -1986,10 +1995,10 @@ msgstr "Nachverfolgbar"
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtuell"
@@ -2417,7 +2426,7 @@ msgstr "Ereignis-Integration aktivieren"
msgid "Enable plugins to respond to internal events"
msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
@@ -2749,41 +2758,50 @@ msgstr "Teilzeitplanung"
msgid "Display part scheduling information"
msgstr "Zeige Zeitplanung für Teile"
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Preis"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr "Endpunkt"
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr "Name für diesen Webhook"
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr "Name für diesen Webhook"
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr "Ist dieser Webhook aktiv"
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "Token"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr "Token für Zugang"
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Geheimnis"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr "Shared Secret für HMAC"
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "Nachrichten-ID"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr "Eindeutige Kennung für diese Nachricht"
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr "Host"
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr "Host von dem diese Nachricht empfangen wurde"
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Kopfzeile"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "Header dieser Nachricht"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Body"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr "Body dieser Nachricht"
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr "Bearbeitet"
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr "Autor"
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Neue {verbose_name}"
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -2934,7 +2954,9 @@ msgstr "Teile importiert"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Anlaufstelle"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Bild"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Währung"
@@ -3055,12 +3077,12 @@ msgstr "Teil auswählen"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
@@ -3070,11 +3092,11 @@ msgstr "Hersteller auswählen"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr "MPN"
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
@@ -3100,8 +3122,8 @@ msgstr "Parametername"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Wert"
@@ -3109,10 +3131,10 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Einheiten"
@@ -3132,24 +3154,24 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Zulieferer auswählen"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Notiz"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Verpackungen"
@@ -3196,7 +3219,7 @@ msgstr "Teile-Verpackungen"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr "Packungsmenge"
@@ -3204,7 +3227,7 @@ msgstr "Packungsmenge"
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "Vielfache"
@@ -3216,8 +3239,8 @@ msgstr "Mehrere bestellen"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Verfügbar"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Kunde"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Telefon"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr "Entfernen"
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Bild hochladen"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Bild herunterladen"
@@ -3351,7 +3374,7 @@ msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
@@ -3380,7 +3403,7 @@ msgstr "Herstellerteile"
msgid "Create new manufacturer part"
msgstr "Neues Herstellerteil anlegen"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Neues Herstellerteil"
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Hersteller"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Teil bestellen"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Zulieferer"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Löschen"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parameter"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Parameter löschen"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
@@ -3538,7 +3561,7 @@ msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Teil bestellen"
@@ -3630,7 +3653,7 @@ msgstr "Neuen Lagerartikel hinzufügen"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Neuer Lagerartikel"
@@ -3662,10 +3685,10 @@ msgstr "Teilverfügbarkeit aktualisieren"
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Bestand"
@@ -3680,7 +3703,7 @@ msgstr "Zuliefererteil Bepreisung"
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Bepreisung"
@@ -3692,7 +3715,7 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Lagerartikel"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Bestellung"
@@ -3973,7 +3996,7 @@ msgstr "Zuliefererteil"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr "Empfangen"
@@ -3984,7 +4007,7 @@ msgstr "Empfangene Objekt-Anzahl"
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Preis"
@@ -4350,18 +4373,21 @@ msgstr "Gesamtkosten konnten nicht berechnet werden"
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte"
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr "Doppelte Auswahlen gefunden, siehe unten. Reparieren und erneut versuchen."
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr "Auswahl übertragen"
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr "Datei-Felder"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "Spalte entfernen"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr "Auswahl duplizieren"
@@ -4389,12 +4418,13 @@ msgstr "Auswahl duplizieren"
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -4429,6 +4459,7 @@ msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen we
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Teil-ID"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr "Name des Teils"
@@ -4580,32 +4611,32 @@ msgstr "Name des Teils"
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Version"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "Kategorie-ID"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
@@ -4625,8 +4656,8 @@ msgstr "Auf Lager"
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "Bestellt"
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr "Zugeordnet"
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr "Im Bau"
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "Pfad zur Kategorie"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Teile"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr "Teil-ID"
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr "Eingehende Bestellung"
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr "Ausgehender Auftrag"
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr "Lagerartikel produziert von Bauauftrag"
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr "Lagerartikel für Bauauftrag benötigt"
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr "Gültig"
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr "Gesamte Stückliste validieren"
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr "Diese Option muss ausgewählt werden"
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr "Muss eine gültige Nummer sein"
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr "Standort für anfänglichen Bestand angeben"
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Standard-Lagerort"
@@ -4801,7 +4832,7 @@ msgstr "Symbol (optional)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -4812,423 +4843,459 @@ msgstr "Teil-Kategorie"
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, 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:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Bestand"
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:990
+#: part/models.py:991
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:992
+#: part/models.py:993
msgid "Part notes"
msgstr "Teile-Notizen"
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr "Letzte Inventur"
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr "Datum"
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
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:3030
+#: part/models.py:3108
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:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:3069
+#: part/models.py:3147
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:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:3075
+#: part/models.py:3153
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:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr "Wert"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr "Stufe"
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
msgid "Optional"
msgstr "Optional"
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:3388
+#: part/models.py:3466
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:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:3394
+#: part/models.py:3472
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:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr "Doppelte Beziehung existiert bereits"
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr "Kaufwährung dieses Lagerartikels"
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr "Bauteil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr "Ersatzteile kopieren"
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr "Bestehende Stückliste löschen"
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr "Keine Bauteilspalte angegeben"
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr "Mehrere übereinstimmende Teile gefunden"
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr "Keine passenden Teile gefunden"
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr "Teil ist nicht als Komponente angelegt"
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr "Menge nicht angegeben"
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr "Mindestens eine Stückliste-Position ist erforderlich"
@@ -5450,7 +5517,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:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr "Stücklisten-Aktionen"
@@ -5507,8 +5574,8 @@ msgstr "Neues Teil anlegen"
msgid "New Part"
msgstr "Neues Teil"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Optionen"
@@ -5556,7 +5623,7 @@ msgstr "Teil erfolgreich angelegt"
msgid "Import Parts"
msgstr "Teile importieren"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -5593,119 +5660,129 @@ msgstr ""
msgid "Refresh"
msgstr "Neu laden"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr "Inventur"
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr "Test Vorlage hinzufügen"
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr "Verkaufsauftragszuweisungen"
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr "Teile-Notizen"
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr "Teil Varianten"
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr "Neue Variante anlegen"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr "neue Variante anlegen"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr "Parameter hinzufügen"
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr "Verknüpfte Teile"
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr "Verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "Stückliste"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr "Export-Aktionen"
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr "Stückliste exportieren"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr "Stücklisten-Bericht drucken"
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr "Stückliste hochladen"
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr "Stücklisten-Position hinzufügen"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr "Baugruppen"
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr "Gefertigte Teile"
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr "Bauauftragszuweisungen"
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Zulieferer"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Teil-Hersteller"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr "Herstellerteile löschen"
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr "verknüpftes Teil"
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
-msgstr "Unzureichende Benutzerrechte."
+msgid "Insufficient privileges."
+msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
msgid "Return to Parts"
@@ -5715,6 +5792,34 @@ msgstr "Zurück zu Teilen"
msgid "Import Parts from File"
msgstr "Teile aus Datei importieren"
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr "Format"
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr "Dateiformat auswählen"
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Teileliste"
@@ -5804,12 +5909,12 @@ msgstr "Teil ist virtuell (kein physisches Teil)"
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr "Inaktiv"
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr "Teildetails anzeigen"
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr "Minimaler Bestand"
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "letzte Seriennummer"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Nach Seriennummer suchen"
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr "Berechnen"
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr "Keine passenden Bilder gefunden"
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr "Teildetails ausblenden"
@@ -5920,15 +6025,6 @@ msgstr "Interner Preis"
msgid "No pricing information is available for this part."
msgstr "Keine Preise für dieses Teil verfügbar"
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr "Datum"
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr "Varianten"
msgid "Scheduling"
msgstr "Zeitplan"
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr "Testvorlagen"
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "Kein Bestand"
@@ -6087,27 +6183,32 @@ msgstr "Unbekannte Datenbank"
msgid "{title} v{version}"
msgstr "{title} v{version}"
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr "Referenzen zuteilen"
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr "Teilbepreisung"
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr "InvenTree Mitwirkende"
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr "Integrierte ausgehende Benachrichtigungsmethoden"
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr "E-Mail-Benachrichtigungen aktivieren"
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr "Das Senden von Benachrichtigungen als E-Mails erlauben"
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr "Plugin Metadaten"
@@ -6409,6 +6530,10 @@ msgstr "Berichts-Ressource"
msgid "Asset file description"
msgstr "Ressource-Beschreibung"
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr "benötigt für"
@@ -6427,7 +6552,7 @@ msgstr "Lagerartikel Test-Bericht"
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Seriennummer"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr "Verbaute Objekte"
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr "Seriennummer"
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr "Inventur"
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -6936,7 +7058,7 @@ msgstr "Testdaten hinzufügen"
msgid "Installed Stock Items"
msgstr "Installierte Lagerartikel"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr "Lagerartikel installieren"
@@ -6944,7 +7066,7 @@ msgstr "Lagerartikel installieren"
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr "Testergebnis hinzufügen"
@@ -7117,10 +7239,6 @@ msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
msgid "Stale"
msgstr "überfällig"
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr "Letzte Inventur"
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
@@ -7394,7 +7512,8 @@ msgstr "Alle als gelesen markieren"
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr "Benachrichtigungen"
@@ -7475,6 +7594,14 @@ msgstr "Die Basis-URL für dieses Plugin ist %(email)s is an email address for user %(user_display)s."
msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail-Adresse für den Benutzer %(user_display)s ist."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bestätigen"
@@ -8313,7 +8440,7 @@ 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:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr "Mindestmenge"
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr "Lagerartikel entfernen"
@@ -8548,16 +8675,6 @@ msgstr "Schliessen"
msgid "Download BOM Template"
msgstr "Vorlage einer Stückliste herunterladen"
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr "Format"
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr "Dateiformat auswählen"
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr "Multilevel Stückliste"
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr "Beinhaltet Variante und Ersatzbestand"
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr "Beinhaltet Variantenbestand"
@@ -8773,13 +8890,13 @@ msgstr "Bauauftrag ist unvollständig"
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr "Nächste verfügbare Seriennummer"
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr "Letzte Seriennummer"
@@ -8987,9 +9104,9 @@ msgstr "Lagerartikel zuordnen"
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr "Auswählen"
@@ -9001,7 +9118,7 @@ msgstr "Bauauftrag ist überfällig"
msgid "Progress"
msgstr "Fortschritt"
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr "Keine Benutzerinformation"
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr "Vorlagenteil"
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Parameter löschen"
@@ -9181,61 +9298,61 @@ msgstr "Filter entfernen"
msgid "Create filter"
msgstr "Filter anlegen"
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Aktion verboten"
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Erstellvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Updatevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Löschvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr "Dieses Formular offen lassen"
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Gib eine gültige Nummer ein"
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Eingabe leeren"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr "Dateispalte"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr "Feldname"
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr "Spalten auswählen"
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr "Label an den Drucker gesendet"
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr "Lagerartikel auswählen"
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr "Status"
@@ -9614,7 +9731,7 @@ msgstr "Empfang der Teile bestätigen"
msgid "Receive Purchase Order Items"
msgstr "Bestellpositionen erhalten"
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
@@ -9647,8 +9764,8 @@ msgstr "Keine Positionen gefunden"
msgid "Total"
msgstr "Summe"
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr "Gesamtpreis"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr "Diese Position ist überfällig"
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr "Position empfangen"
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr "an Kunde versand"
@@ -9835,334 +9952,358 @@ msgstr "Keine passenden Positionen gefunden"
msgid "No matching lines"
msgstr "Keine passenden Positionen gefunden"
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Teileigenschaften"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr "Erstellungsoptionen für Teile"
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr "Einstellungen für Teilkopien"
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr "Zuliefereroptionen"
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "Teil-Kategorie hinzufügen"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr "Anfänglichen Bestand erstellen"
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr "Anfänglichen Bestand für dieses Teil erstellen"
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr "Menge des anfänglichen Bestands für dieses Teil angeben"
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr "Zielstandort auswählen"
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr "Parametervorlagen aus der ausgewählten Bauteilkategorie kopieren"
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr "Zuliefererdaten hinzufügen"
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr "Erstelle ersten Lieferanten für dieses Teil"
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Bild kopieren"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr "Übergeordnete Teilkategorie"
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr "Möchten Sie diese Kategorie wirklich löschen?"
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "Teil bearbeiten"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr "Teil bearbeitet"
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr "Teil-Variante anlegen"
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr "Aktives Teil"
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr "Teil kann nicht gelöscht werden, da es derzeit aktiv ist"
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden"
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr "Alle Lagerartikel für dieses Teil werden gelöscht"
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr "Teil löschen"
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr "Benachrichtigungen für dieses Teil abonnieren"
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet"
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr "Die Stückliste zu validieren markiert jede Zeile als gültig"
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr "Stückliste prüfen"
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr "Stückliste kopieren"
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr "Kein Lagerbestand verfügbar"
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr "Abonnierter Teil"
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Listenansicht"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Rasteransicht"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr "Teil-Kategorie wählen"
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr "Kategorie erforderlich"
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Baumansicht"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr "Abonnierte Kategorie"
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr "Testergebnis-Vorlage bearbeiten"
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr "Testergebnis-Vorlage löschen"
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr "Keine Zeitplanung für dieses Teil vorhanden"
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr "Geplante Lagermengen"
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr "Ergebnisse minimieren"
msgid "Remove results"
msgstr "Ergebnisse entfernen"
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr "Lagerartikel serialisieren"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr "Lager-Serialisierung bestätigen"
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "Lagerartikel-Ort bearbeiten"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr "Neuer Lagerstandort"
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr "Dieser Teil kann nicht serialisiert werden"
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
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:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr "Lagerartikel dupliziert"
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel löschen wollen?"
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr "Lagerartikel löschen"
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr "Lagerartikel bearbeiten"
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr "Neuer Lagerartikel erstellt"
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr "Mehrere Lagerartikel erstellt"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr "Seriennummer finden"
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr "Seriennummer eingeben"
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr "Eine Seriennummer eingeben"
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr "Keine passende Seriennummer"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr "Mehrere Ergebnisse gefunden"
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr "Bestand Zuweisung bestätigen"
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr "Einem Kunden zuordnen"
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden"
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden"
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht"
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht"
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr "Zusammenführung der Artikel bestätigen"
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr "Artikel zusammenführen"
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr "Test bestanden"
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr "In Lagerartikel installiert"
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr "Serialisierter Lagerartikel wurde zugewiesen"
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr "Lagerartikel wurde vollständig zugewiesen"
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr "Lagerartikel wurde teilweise zugewiesen"
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "Details"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr "Artikelinformationen nicht verfügbar"
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr "Lagerartikel entfernen"
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr "Zu deinstallierende Lagerartikel auswählen"
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr "Einen weiteren Lagerartikel in dieses Teil installiert"
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden"
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr "Dieser Lagerartikel ist aktuell vorhanden"
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert"
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt"
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr "Teil zur Installation auswählen"
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr "Bestand an Varianten zulassen"
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr "Auf Lager"
msgid "Purchasable"
msgstr "Käuflich"
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Kalender-Ansicht"
@@ -11206,35 +11351,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Ansicht"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Ändern"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:224
+#: users/models.py:225
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 83e32c1a60..566e11cd38 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -34,7 +34,7 @@ msgstr "Εισάγετε ημερομηνία"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Εισάγετε ημερομηνία"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Σημειώσεις"
@@ -204,18 +204,18 @@ msgstr "Συνημμένο"
msgid "Select file to attach"
msgstr "Επιλέξτε αρχείο για επισύναψη"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Σύνδεσμος"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL"
@@ -229,12 +229,13 @@ msgstr "Σχόλιο"
msgid "File comment"
msgstr "Σχόλιο αρχείου"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Χρήστης"
@@ -271,19 +272,20 @@ msgstr "Σφάλμα κατά τη μετονομασία"
msgid "Invalid choice"
msgstr "Μη έγκυρη επιλογή"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Όνομα"
@@ -292,24 +294,25 @@ msgstr "Όνομα"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Περιγραφή"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "γονέας"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Μονοπάτι"
@@ -354,7 +357,7 @@ msgstr "Σφάλμα διακομιστή"
msgid "An error has been logged by the server."
msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Πρέπει να είναι αριθμός"
@@ -421,107 +424,107 @@ msgstr "Διεύθυνση URL του αρχείου απομακρυσμένη
msgid "Downloading images from remote URL is not enabled"
msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Τσέχικα"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Γερμανικά"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Ελληνικά"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Αγγλικά"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Ισπανικά"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Ισπανικά (Μεξικό)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Φαρσί / Περσικά"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Γαλλικά"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Εβραϊκά"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Ούγγρικα"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Ιταλικά"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Ιαπωνικά"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Κορεάτικα"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Dutch"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Νορβηγικά"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Πολωνικά"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Πορτογαλικά"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Πορτογαλικά (Βραζιλίας)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Ρωσικά"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Σουηδικά"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Ταϊλανδέζικα"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Τούρκικα"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Βιετναμέζικα"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Κινέζικα"
@@ -652,7 +655,7 @@ msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχεί
msgid "Split child item"
msgstr "Διαχωρίστηκε θυγατρικό στοιχείο"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Έγινε συγχώνευση αποθεμάτων"
@@ -756,7 +759,7 @@ msgstr "Σειρά Κατασκευής"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Δημιουργία Παραγγελιών"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Αναφορά Παραγγελίας Κατασκευής"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Εξάρτημα"
@@ -890,7 +896,7 @@ msgstr "Κωδικός Παρτίδας"
msgid "Batch code for this build output"
msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Ημερομηνία Δημιουργίας"
@@ -923,7 +929,7 @@ msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελ
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Υπεύθυνος για αυτή την παραγγελία κατα
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Εξωτερικοί σύνδεσμοι"
@@ -1011,8 +1017,8 @@ msgstr "Κατασκευή για εκχώρηση τμημάτων"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Στοιχείο Αποθέματος"
@@ -1022,12 +1028,13 @@ msgstr "Στοιχείο πηγαίου αποθέματος"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Στοιχείο πηγαίου αποθέματος"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Ποσότητα"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
@@ -1113,7 +1121,7 @@ msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Σειριακοί αριθμοί"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index a157439f08..bd7bcb6689 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-25 08:14+0000\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -35,7 +35,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -45,8 +45,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -205,18 +205,18 @@ msgstr ""
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1608
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr ""
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr ""
@@ -230,12 +230,13 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr ""
@@ -272,19 +273,20 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr ""
@@ -293,24 +295,25 @@ msgstr ""
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1490 templates/js/translated/part.js:2039
-#: templates/js/translated/part.js:2114 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr ""
@@ -323,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2048 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -355,7 +358,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr ""
@@ -422,107 +425,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr ""
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr ""
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr ""
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -653,7 +656,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -757,7 +760,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -767,8 +770,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -794,13 +798,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -820,12 +826,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1467 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -891,7 +897,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -924,7 +930,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -937,7 +943,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1012,8 +1018,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1023,12 +1029,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1050,13 +1057,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2561
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1098,8 +1106,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1114,7 +1122,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1147,9 +1155,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1163,8 +1172,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1240,8 +1249,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1407,7 +1416,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1485,8 +1494,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1618,8 +1627,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1636,7 +1645,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1929,9 +1938,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1939,7 +1948,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1950,7 +1959,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1959,7 +1968,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1967,7 +1976,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1976,10 +1985,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1987,10 +1996,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2418,7 +2427,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2750,41 +2759,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2792,131 +2810,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2935,7 +2955,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2996,7 +3018,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3029,8 +3051,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3056,12 +3078,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3071,11 +3093,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3101,8 +3123,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3110,10 +3132,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3133,24 +3155,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3167,24 +3189,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3197,7 +3220,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3205,7 +3228,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3217,8 +3240,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3301,7 +3324,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3315,7 +3338,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3324,19 +3347,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3352,7 +3375,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3381,7 +3404,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3395,9 +3418,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3418,9 +3441,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3452,7 +3475,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3483,28 +3506,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3515,7 +3538,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3539,7 +3562,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3579,7 +3602,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3631,7 +3654,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3663,10 +3686,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1371
-#: templates/js/translated/part.js:1527 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3681,7 +3704,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3693,7 +3716,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3802,9 +3825,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3974,7 +3997,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3985,7 +4008,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4351,18 +4374,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4370,18 +4396,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4390,12 +4419,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4430,6 +4460,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4568,12 +4599,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4581,32 +4612,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1484
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4614,7 +4645,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4626,8 +4657,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1374 templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4643,115 +4674,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1378 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2058 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4802,7 +4833,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4813,423 +4844,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1506 templates/js/translated/part.js:1763
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2109
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2118
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2126
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2133
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5237,189 +5304,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5451,7 +5518,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5508,8 +5575,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5557,7 +5624,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5594,118 +5661,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5716,6 +5793,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5805,12 +5910,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5838,38 +5943,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1597
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5921,15 +6026,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5942,7 +6038,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5961,7 +6057,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6024,8 +6120,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1366 templates/js/translated/part.js:1368
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6088,27 +6184,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6157,28 +6258,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6410,6 +6531,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6428,7 +6553,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6460,8 +6585,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6516,13 +6642,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6937,7 +7059,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6945,7 +7067,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7118,10 +7240,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7395,7 +7513,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7476,6 +7595,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7493,7 +7620,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7502,7 +7629,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7670,67 +7797,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7759,12 +7886,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7776,7 +7903,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7946,64 +8073,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8081,7 +8208,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8115,7 +8242,7 @@ msgid "Forgot Password?"
msgstr ""
#: templates/account/login.html:53
-msgid "or use SSO"
+msgid "Sign in using third-party SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
@@ -8316,7 +8443,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8469,7 +8596,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8551,16 +8678,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8691,7 +8808,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1565
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8776,13 +8893,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8990,9 +9107,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1459
-#: templates/js/translated/part.js:1996 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9004,7 +9121,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9077,34 +9194,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9184,61 +9301,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9259,7 +9376,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9593,7 +9710,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9617,7 +9734,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9650,8 +9767,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9669,11 +9786,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9794,7 +9911,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9838,334 +9955,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1547
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1648
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1514
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1545
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1569
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1915
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1754
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1759
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1764
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1777
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1935 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2015
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2031
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2095
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2146 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2147 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2153
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2175
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2270 templates/js/translated/part.js:2271
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2273
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2279
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2335
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2431
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2447
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2492
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10293,388 +10434,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10699,7 +10840,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10915,6 +11056,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11209,34 +11354,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 286be5e89e..4c495efd79 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -34,7 +34,7 @@ msgstr "Ingrese la fecha"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Ingrese la fecha"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Notas"
@@ -204,18 +204,18 @@ msgstr "Archivo adjunto"
msgid "Select file to attach"
msgstr "Seleccionar archivo para adjuntar"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Enlace"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Enlace a URL externa"
@@ -229,12 +229,13 @@ msgstr "Comentario"
msgid "File comment"
msgstr "Comentario del archivo"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Usuario"
@@ -271,19 +272,20 @@ msgstr "Error al cambiar el nombre del archivo"
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Nombre"
@@ -292,24 +294,25 @@ msgstr "Nombre"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Descripción"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "padre"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Ruta"
@@ -354,7 +357,7 @@ msgstr "Error de Servidor"
msgid "An error has been logged by the server."
msgstr "Se ha registrado un error por el servidor."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Debe ser un numero valido"
@@ -421,107 +424,107 @@ msgstr "URL de imagen remota"
msgid "Downloading images from remote URL is not enabled"
msgstr "La descarga de imágenes desde la URL remota no está habilitada"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Checo"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Danés"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Griego"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Español"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Español (México)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Persa"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebreo"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Húngaro"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japonés"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Holandés"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Noruego"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugués"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugués (Brasileño)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Ruso"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Sueco"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Tailandés"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Chino"
@@ -652,7 +655,7 @@ msgstr "Separar del elemento principal"
msgid "Split child item"
msgstr "Dividir elemento secundario"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Artículos de stock combinados"
@@ -756,7 +759,7 @@ msgstr "Construir órden"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Construir órdenes"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Orden de Construcción o Armado a la que se asigna"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Parte"
@@ -890,7 +896,7 @@ msgstr "Numero de lote"
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Fecha de Creación"
@@ -923,7 +929,7 @@ msgstr "El usuario que emitió esta orden"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Usuario responsable de esta orden"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Link externo"
@@ -1011,8 +1017,8 @@ msgstr "Armar para asignar partes"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Artículo de stock"
@@ -1022,12 +1028,13 @@ msgstr "Producto original de stock"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Producto original de stock"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Cantidad"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Ingrese la cantidad para la producción de la construcción"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
@@ -1113,7 +1121,7 @@ msgstr "Cantidad entera requerida, ya que la factura de materiales contiene part
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -1146,9 +1154,10 @@ msgstr "Debe proporcionarse una lista de salidas de construcción"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Unicación"
@@ -1162,8 +1171,8 @@ msgstr "Ubicación para las salidas de construcción completadas"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Estado"
@@ -1239,8 +1248,8 @@ msgstr "La cantidad de construcción requerida aún no se ha completado"
msgid "Build order has incomplete outputs"
msgstr "El orden de construcción tiene salidas incompletas"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
@@ -1406,7 +1415,7 @@ msgstr "Stock no ha sido asignado completamente a este pedido de construcción"
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Fecha objetivo"
@@ -1484,8 +1493,8 @@ msgstr "Partes asignadas"
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr "Salidas de Trabajo Completadas"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Adjuntos"
@@ -1635,7 +1644,7 @@ msgstr "Asignación completa"
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:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Nueva Orden de Trabajo"
@@ -1928,9 +1937,9 @@ msgstr "Copiar plantillas de parámetros de categoría"
msgid "Copy category parameter templates when creating a part"
msgstr "Copiar plantillas de parámetros de categoría al crear una parte"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Plantilla"
@@ -1938,7 +1947,7 @@ msgstr "Plantilla"
msgid "Parts are templates by default"
msgstr "Las piezas son plantillas por defecto"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Montaje"
msgid "Parts can be assembled from other components by default"
msgstr "Las piezas pueden ser ensambladas desde otros componentes por defecto"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Componente"
@@ -1958,7 +1967,7 @@ msgstr "Componente"
msgid "Parts can be used as sub-components by default"
msgstr "Las piezas pueden ser usadas como subcomponentes por defecto"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Comprable"
@@ -1966,7 +1975,7 @@ msgstr "Comprable"
msgid "Parts are purchaseable by default"
msgstr "Las piezas son comprables por defecto"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Vendible"
@@ -1975,10 +1984,10 @@ msgstr "Vendible"
msgid "Parts are salable by default"
msgstr "Las piezas se pueden vender por defecto"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Rastreable"
@@ -1986,10 +1995,10 @@ msgstr "Rastreable"
msgid "Parts are trackable by default"
msgstr "Las piezas son rastreables por defecto"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtual"
@@ -2417,7 +2426,7 @@ msgstr "Habilitar integración de eventos"
msgid "Enable plugins to respond to internal events"
msgstr "Habilitar plugins para responder a eventos internos"
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas"
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Precio"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr "Precio unitario a la cantidad especificada"
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr "Punto final en el que se recibe este webhook"
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr "Nombre para este webhook"
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr "Nombre para este webhook"
msgid "Active"
msgstr "Activo"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr "Está activo este webhook"
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr "Token para el acceso"
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Clave"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr "Secreto compartido para HMAC"
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "ID de mensaje"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr "Identificador único para este mensaje"
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr "Servidor desde el cual se recibió este mensaje"
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Encabezado"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "Encabezado del mensaje"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Cuerpo"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr "Cuerpo de este mensaje"
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr "Endpoint en el que se recibió este mensaje"
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr "Trabajado en"
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr "¿El trabajo en este mensaje ha terminado?"
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr "Titulo"
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr "Publicado"
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr "Autor"
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr "Resumen"
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr "Artículos Recibidos"
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Subir Archivo"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Coincidir Campos"
@@ -2934,7 +2954,9 @@ msgstr "Partes importadas"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Punto de contacto"
msgid "Link to external company information"
msgstr "Enlace a información externa de la empresa"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Imágen"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "¿Esta empresa fabrica piezas?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Moneda"
@@ -3055,12 +3077,12 @@ msgstr "Seleccionar pieza"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Seleccionar fabricante"
@@ -3070,11 +3092,11 @@ msgstr "Seleccionar fabricante"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Número de Parte del Fabricante"
@@ -3100,8 +3122,8 @@ msgstr "Nombre del parámetro"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Valor"
@@ -3109,10 +3131,10 @@ msgstr "Valor"
msgid "Parameter value"
msgstr "Valor del parámetro"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Unidades"
@@ -3132,24 +3154,24 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma pieza
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Proveedor"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Seleccionar proveedor"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Nota"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "costo base"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Paquetes"
@@ -3196,7 +3219,7 @@ msgstr "Embalaje de partes"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "múltiple"
@@ -3216,8 +3239,8 @@ msgstr "Pedido múltiple"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Disponible"
@@ -3300,7 +3323,7 @@ msgstr "Borrar imagen"
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Cliente"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Teléfono"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr "Quitar imagen"
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr "Eliminar"
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Cargar Imagen"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Descargar imagen"
@@ -3351,7 +3374,7 @@ msgstr "Crear nueva parte del proveedor"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Nueva Parte de Proveedor"
@@ -3380,7 +3403,7 @@ msgstr "Partes del fabricante"
msgid "Create new manufacturer part"
msgstr "Crear nueva pieza de fabricante"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Nueva pieza de fabricante"
@@ -3394,9 +3417,9 @@ msgstr "Stock del Proveedor"
#: 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ msgstr "Nueva orden de compra"
#: 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Fabricantes"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Pedir ítem"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Proveedores"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Eliminar partes del proveedor"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Eliminar"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parámetros"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Eliminar parámetro"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Añadir parámetro"
@@ -3538,7 +3561,7 @@ msgstr "Elementos de Stock Asignados"
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Ítems de Proveedor"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Pedir ítem"
@@ -3630,7 +3653,7 @@ msgstr "Crear nuevo artículo de stock"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Nuevo artículo de stock"
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Inventario"
@@ -3680,7 +3703,7 @@ msgstr "Precio de pieza del proveedor"
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Precios"
@@ -3692,7 +3715,7 @@ msgstr "Precios"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Elementos de stock"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Orden de compra"
@@ -3973,7 +3996,7 @@ msgstr "Ítems de Proveedor"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr "Recibido"
@@ -3984,7 +4007,7 @@ msgstr "Número de artículos recibidos"
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Precio de Compra"
@@ -4350,18 +4373,21 @@ msgstr "No se ha podido calcular el costo total"
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr "Faltan selecciones para las siguientes columnas requeridas"
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr "Se han encontrado selecciones duplicadas, vea a continuación. Arreglarlas y vuelva a intentar enviarlas."
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr "Enviar selecciones"
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr "Campos de archivo"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "Eliminar columna"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr "Duplicar selección"
@@ -4389,12 +4418,13 @@ msgstr "Duplicar selección"
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Eliminar fila"
@@ -4429,6 +4459,7 @@ msgstr "El pedido ya ha sido procesado. Los archivos no se pueden cargar."
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr "Actualizado el precio unitario de {part} a {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}"
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "ID de Parte"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Revisión"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Palabras claves"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "ID de Categoría"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Stock mínimo"
@@ -4625,8 +4656,8 @@ msgstr "En Stock"
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "En pedido"
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr "Asignadas"
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr "En construcción"
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "Ruta de Categoría"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Partes"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr "Válido"
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr "Esta opción debe ser seleccionada"
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr "Debe ser mayor que 0"
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr "Debe ser una cantidad válida"
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr "Especificar ubicación para el stock inicial de piezas"
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr "Este campo es obligatorio"
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Ubicación Predeterminada"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoría de parte"
@@ -4812,423 +4843,459 @@ msgstr "Categoría de parte"
msgid "Part Categories"
msgstr "Categorías de parte"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr "Opción no válida para la parte principal"
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "La parte '{p1}' se utiliza en BOM para '{p2}' (recursivo)"
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN duplicado no permitido en la configuración de partes"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Nombre de la pieza"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "Es plantilla"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "¿Es esta parte una parte de la plantilla?"
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr "¿Es esta parte una variante de otra parte?"
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Variante de"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Descripción de la pieza"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda"
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Categoría"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr "Número de parte interna"
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "Revisión de parte o número de versión"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr "¿Dónde se almacena este elemento normalmente?"
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr "Proveedor por defecto"
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr "Parte de proveedor predeterminada"
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr "Expiración por defecto"
-#: part/models.py:939
+#: part/models.py:940
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:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr "Nivel mínimo de stock permitido"
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr "Unidades de mantenimiento de stock para esta parte"
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr "¿Se puede construir esta pieza a partir de otras piezas?"
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr "¿Se puede utilizar esta pieza para construir otras partes?"
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr "¿Esta parte tiene seguimiento de objetos únicos?"
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr "¿Se puede comprar esta pieza a proveedores externos?"
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "¿Se puede vender esta pieza a los clientes?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "¿Está activa esta parte?"
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?"
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr "Suma de control BOM almacenada"
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr "BOM comprobado por"
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr "Fecha BOM comprobada"
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr "Creación de Usuario"
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr "Último inventario"
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr "Fecha"
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables"
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr "Ya existe una prueba con este nombre para esta parte"
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr "Requerido"
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?"
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?"
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr "El nombre de parámetro en la plantilla tiene que ser único"
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr "Nombre de Parámetro"
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr "Unidad del Parámetro"
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr "Parte principal"
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "Plantilla de parámetro"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr "Valor predeterminado"
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr "Cantidad del artículo en BOM"
msgid "Optional"
msgstr "Opcional"
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr "Este elemento BOM es opcional"
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Exceso"
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)"
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr "Suma de comprobación de la línea en BOM"
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr "Heredado"
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Este artículo BOM es heredado por BOMs para partes variantes"
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM"
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr "La cantidad debe ser un valor entero para las partes rastreables"
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr "La parte sustituta no puede ser la misma que la parte principal"
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr "Moneda de compra de ítem de stock"
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr "Eliminar elementos BOM existentes antes de copiar"
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluye elementos BOM que son heredados de partes con plantillas"
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr "Limpiar BOM Existente"
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr "Varios resultados encontrados"
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr "No se encontraron partes coincidentes"
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr "La parte no está designada como componente"
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr "Cantidad no proporcionada"
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr "Cantidad no válida"
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr "Se requiere al menos un elemento BOM"
@@ -5450,7 +5517,7 @@ msgstr "El BOM para %(part)s fue revisado por última vez por %(checker
msgid "The BOM for %(part)s has not been validated."
msgstr "El BOM para %(part)s no ha sido validada."
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr "Acciones BOM"
@@ -5507,8 +5574,8 @@ msgstr "Crear nueva parte"
msgid "New Part"
msgstr "Nueva Parte"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Opciones"
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr "Importar Partes"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr "Duplicar Parte"
@@ -5593,119 +5660,129 @@ msgstr ""
msgid "Refresh"
msgstr "Actualizar"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr "Inventario"
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr "Plantillas de prueba de parte"
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr "Añadir Plantilla de Prueba"
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr "Asignaciones de órdenes de venta"
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr "Variantes de Parte"
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr "Crear nueva variante"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr "Nueva Variante"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr "Añadir nuevo parámetro"
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr "Partes relacionadas"
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr "Añadir Relacionado"
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "Lista de Materiales"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr "Exportar acciones"
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr "Exportar BOM"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr "Imprimir informe BOM"
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr "Subir BOM"
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr "Validar BOM"
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr "Añadir artículo al BOM"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr "Ensamblajes"
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr "Construcción de partes"
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr "Construir adjudicaciones de pedidos"
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Proveedores de piezas"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Fabricantes de piezas"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr "Eliminar partes del fabricante"
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr "Partes relacionadas"
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr "Añadir artículos relacionados"
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr "Añadir plantilla de resultados de prueba"
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
-msgstr "Privilegios insuficientes."
+msgid "Insufficient privileges."
+msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
msgid "Return to Parts"
@@ -5715,6 +5792,34 @@ msgstr "Volver a los artículos"
msgid "Import Parts from File"
msgstr "Importar artículos desde archivo"
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr "Formato"
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr "Seleccionar formato de archivo"
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Listado de artículos"
@@ -5804,12 +5909,12 @@ msgstr "La pieza es virtual (no una pieza física)"
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr "Inactivo"
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr "Mostrar Detalles de Parte"
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr "Nivel mínimo de stock"
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "Último Número Serial"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Buscar número de serie"
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr "Calcular"
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr "No se encontraron imágenes coincidentes"
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr "Ocultar Detalles de la Parte"
@@ -5920,15 +6025,6 @@ msgstr "Precio Interno"
msgid "No pricing information is available for this part."
msgstr "No hay información de precios disponible para esta parte."
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr "Fecha"
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr "Variantes"
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr "Plantillas de Prueba"
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr "Última actualización"
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "Sin Stock"
@@ -6087,27 +6183,32 @@ msgstr "Base de datos desconocida"
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr "Coincidir Referencias"
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr "Código QR de Parte"
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr "Seleccionar Imagen de Parte"
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr "Imagen de parte actualizada"
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "Imagen de parte no encontrada"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr "Precio de parte"
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr "Reportar archivo de activos"
msgid "Asset file description"
msgstr "Descripción del archivo de activos"
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr "Requerido para"
@@ -6427,7 +6552,7 @@ msgstr "Artículo Stock Informe de prueba"
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Número de serie"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr "Elementos instalados"
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr "Inventario"
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr "Fecha de Expiración"
@@ -6936,7 +7058,7 @@ msgstr "Añadir Datos de Prueba"
msgid "Installed Stock Items"
msgstr "Elementos de Stock instalados"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr "Instalar elemento de stock"
@@ -6944,7 +7066,7 @@ msgstr "Instalar elemento de stock"
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr "Añadir Resultado de Prueba"
@@ -7117,10 +7239,6 @@ msgstr "Este ítem expira el %(item.expiry_date)s"
msgid "Stale"
msgstr "Desactualizado"
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr "Último inventario"
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Ningún inventario realizado"
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr "La URL base para este plugin es
msgid "Open in new tab"
msgstr "Abrir en una pestaña nueva"
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "Ajustes de Parte"
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr "Plantillas de Parámetros de Partes"
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr "Ajustes del Plugin"
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr "Ningún valor establecido"
msgid "Edit setting"
msgstr "Editar ajustes"
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr "Editar Configuración del Plugin"
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr "Editar Configuración Global"
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr "Editar Configuración de Usuario"
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr "No hay plantillas de parámetros de categoría"
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
+#: templates/InvenTree/settings/settings.html:237
+#: templates/InvenTree/settings/settings.html:362
msgid "Edit Template"
msgstr "Editar Plantilla"
-#: templates/InvenTree/settings/settings.html:237
-#: templates/InvenTree/settings/settings.html:362
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr "Eliminar Plantilla"
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr "Crear plantilla de parámetro de categoría"
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr "Eliminar plantilla de parámetro de categoría"
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr "No se encontraron plantillas de parámetros de parte"
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr "Identificación"
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr "Crear plantilla Parámetro de Parte"
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr "Crear plantilla Parámetro de Parte"
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr "Eliminar Plantilla de Parámetros de Parte"
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr "Ajustes de Búsqueda"
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr "Impresión de etiquetas"
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr "Informando"
@@ -7775,7 +7902,7 @@ msgstr "Configuración Global"
msgid "Server Configuration"
msgstr "Configuración del Servidor"
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr "Categorías"
@@ -7945,64 +8072,64 @@ msgstr "%(time)s atrás"
msgid "Do you really want to remove the selected email address?"
msgstr "¿Realmente desea eliminar la dirección de correo electrónico seleccionada?"
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr "Configuración del Tema"
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr "Seleccionar tema"
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr "Establecer tema"
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr "Configuración de Idioma"
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr "Seleccionar idioma"
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% traducido"
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr "No hay traducciones disponibles"
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr "Definir Idioma"
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr "Algunos idiomas no están completos"
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr "Mostrar solo el contenido"
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr "y oculto."
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr "Mostrar también"
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr "¡Ayuda a los esfuerzos de traducción!"
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr "Confirmar Email"
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr "Confirme que %(email)s es una dirección de correo electrónico para el usuario %(user_display)s."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Confirmar"
@@ -8316,7 +8443,7 @@ msgid "Click on the following link to view this part"
msgstr "Haga clic en el siguiente enlace para ver esta pieza"
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr "Cantidad Mínima"
@@ -8469,7 +8596,7 @@ msgstr ""
msgid "Unlink"
msgstr "Desvincular"
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr "Eliminar elemento de stock"
@@ -8551,16 +8678,6 @@ msgstr "Cerrar"
msgid "Download BOM Template"
msgstr "Descargar plantilla BOM"
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr "Formato"
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr "Seleccionar formato de archivo"
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8691,7 +8808,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8776,13 +8893,13 @@ msgstr "Orden de construcción incompleta"
msgid "Complete Build Order"
msgstr "Completar Orden de Construcción"
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr "Siguiente número de serie disponible"
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr "Último número de serie"
@@ -8990,9 +9107,9 @@ msgstr ""
msgid "No builds matching query"
msgstr "No hay trabajos que coincidan con la consulta"
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr "Seleccionar"
@@ -9004,7 +9121,7 @@ msgstr "Orden de trabajo atrasada"
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr "No hay información de usuario"
@@ -9077,34 +9194,34 @@ msgid "No manufacturer parts found"
msgstr "No se encontraron partes del fabricante"
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr "Plantilla de parte"
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr "Parte ensamblada"
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "No se encontraron parámetros"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Editar parámetro"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Eliminar parámetro"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Editar parámetro"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Eliminar parámetro"
@@ -9184,61 +9301,61 @@ msgstr "Limpiar todos los filtros"
msgid "Create filter"
msgstr "Crear filtro"
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Acción Prohibida"
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Operación de creación no permitida"
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Operación de actualización no permitida"
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Operación de eliminación no permitida"
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Operación de visualización no permitida"
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Introduzca un número válido"
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Existen errores en el formulario"
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr "No hay resultados"
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Buscando"
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Limpiar entrada"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9259,7 +9376,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr "Seleccionar elementos de stock"
@@ -9593,7 +9710,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr "Cantidad a recibir"
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr "Estado del Stock"
@@ -9617,7 +9734,7 @@ msgstr "Confirmar recepción de artículos"
msgid "Receive Purchase Order Items"
msgstr "Recibir artículos de orden de compra"
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr "No se encontraron órdenes de compra"
@@ -9650,8 +9767,8 @@ msgstr "No hay elementos de línea"
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9669,11 +9786,11 @@ msgid "Total Price"
msgstr "Precio Total"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr "Recibir ítem de línea"
@@ -9794,7 +9911,7 @@ msgid "Delete Stock Allocation"
msgstr "Eliminar Adjudicación de Stock"
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr "Enviado al cliente"
@@ -9838,334 +9955,358 @@ msgstr "No hay elementos de línea coincidentes"
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Atributos de Parte"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr "Opciones de Creación de Parte"
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr "Opciones de Duplicación de Parte"
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr "Opciones de Proveedor"
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "Añadir Categoría de Parte"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr "Crear Stock Inicial"
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr "Crear un elemento inicial de stock para esta parte"
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr "Especifique la cantidad inicial de stock para esta parte"
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr "Seleccionar ubicación de stock de destino"
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr "Añadir Datos de Proveedor"
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr "Crear datos iniciales del proveedor para esta parte"
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr "Categoría superior de parte"
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "Editar Categoría de Parte"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr "Eliminar Categoría de Parte"
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "Editar Parte"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr "Parte editada"
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr "Crear Variante de Parte"
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr "Estás suscrito a las notificaciones de este elemento"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr "Te has suscrito a las notificaciones de este elemento"
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr "Suscríbete a las notificaciones de este elemento"
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr "Has cancelado la suscripción a las notificaciones de este elemento"
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr "Validar el BOM marcará cada elemento de línea como válido"
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr "Validar la Factura de Materiales"
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr "Copiar Factura de Materiales"
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr "Stock bajo"
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "Parte Rastreable"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr "Parte virtual"
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr "Parte suscrita"
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr "Pieza vendible"
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "No se encontraron variantes"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr "Eliminar relación de parte"
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr "Eliminar Relación de Parte"
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "No se encontraron partes"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Sin categoría"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Mostrar como lista"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Mostrar como cuadrícula"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "Definir Categoría de Parte"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Mostrar como árbol"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr "Categoría suscrita"
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr "No hay plantillas de prueba que coincidan con la consulta"
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr "Editar resultado de prueba"
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr "Eliminar resultado de prueba"
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr "Esta prueba está definida para una parte principal"
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr "Editar plantilla de resultado de prueba"
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr "Eliminar plantilla de resultados de prueba"
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10293,388 +10434,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr "Serializar Artículo de Stock"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr "Confirmar Serialización de Stock"
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr "Ubicación del stock principal"
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "Editar ubicación de stock"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr "Nueva Ubicación de Stock"
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "¿Está seguro que desea eliminar esta ubicación?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "Eliminar ubicación de stock"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr "Esta parte no se puede serializar"
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr "Introduzca la cantidad inicial para este artículo de stock"
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Introduzca números de serie para el nuevo stock (o deje en blanco)"
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr "Duplicar artículo de stock"
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr "¿Está seguro que desea eliminar este elemento de stock?"
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr "Eliminar elemento de stock"
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr "Editar artículo de stock"
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr "Crear nuevo artículo de stock"
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr "Creados varios artículos de stock"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr "Encontrar número serial"
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr "Introducir número de serie"
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr "Introducir un número de serie"
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr "Ningún número de serie coincidente"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr "Más de un resultado encontrado"
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr "Confirmar asignación de stock"
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr "Asignar Stock al Cliente"
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr "Advertencia: La operación de fusión no puede ser revertida"
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr "Alguna información se perderá al combinar artículos de stock"
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr "Se eliminará el historial de transacciones de stock para elementos fusionados"
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr "La información de la pieza del proveedor se eliminará para los artículos fusionados"
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr "Confirmar fusión de artículos de stock"
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr "Fusionar Artículos de Stock"
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr "Transferir Stock"
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr "Mover"
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr "Contar Stock"
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr "Contar"
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr "Eliminar Stock"
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr "Tomar"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr "Añadir Stock"
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "Añadir"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr "Eliminar Stock"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "La cantidad no se puede ajustar para el stock serializado"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr "Especificar cantidad de stock"
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr "Debe seleccionar al menos un artículo de stock disponible"
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr "Confirmar ajuste de stock"
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr "PASA"
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr "FALLO"
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr "SIN RESULTADO"
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr "Pruebas pasadas"
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr "Añadir resultado de prueba"
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr "No se encontraron resultados de prueba"
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr "Fecha de Prueba"
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr "Editar Resultados de Prueba"
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr "Borrar Resultado de Prueba"
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "En producción"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr "Instalado en el artículo de stock"
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr "Asignado a la Orden de Venta"
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Ninguna ubicación de stock establecida"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr "El artículo de stock está en producción"
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr "Artículo de stock asignado al pedido de venta"
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr "Artículo de stock asignado al cliente"
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr "Se ha asignado un artículo de stock serializado"
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr "Artículo de stock ha sido completamente asignado"
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr "Artículo de stock ha sido asignado parcialmente"
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr "Artículo de stock ha sido instalado en otro artículo"
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr "Artículo de stock ha caducado"
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr "El artículo de stock caducará pronto"
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr "Artículo de stock ha sido rechazado"
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr "Artículo de stock perdido"
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr "Artículo de stock destruido"
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr "Agotado"
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr "Parte del proveedor no especificada"
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr "No hay artículos de stock que coincidan con la consulta"
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr "Establecer estado de stock"
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr "Seleccionar Código de Estado"
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr "Debe seleccionar el código de estado"
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "Detalles"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "Ubicación ya no existe"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr "La orden de compra ya no existe"
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr "El cliente ya no existe"
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr "Artículo de stock ya no existe"
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr "Añadido"
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr "Eliminado"
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr "Ningún elemento instalado"
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr "Desinstalar elemento de stock"
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Los artículos de stock sólo pueden ser instalados si cumplen con los siguientes criterios"
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10699,7 +10840,7 @@ msgid "Allow Variant Stock"
msgstr "Permitir stock de variante"
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10915,6 +11056,10 @@ msgstr ""
msgid "Purchasable"
msgstr "Comprable"
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Mostrar vista de calendario"
@@ -11209,35 +11354,35 @@ msgstr "Permisos"
msgid "Important dates"
msgstr "Fechas importantes"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Permiso establecido"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Grupo"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Vista"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Permiso para ver elementos"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Permiso para añadir elementos"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Cambiar"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Permisos para editar elementos"
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr "Permiso para eliminar elementos"
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index a157439f08..bd7bcb6689 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-25 08:14+0000\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -35,7 +35,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -45,8 +45,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -205,18 +205,18 @@ msgstr ""
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1608
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr ""
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr ""
@@ -230,12 +230,13 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr ""
@@ -272,19 +273,20 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr ""
@@ -293,24 +295,25 @@ msgstr ""
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1490 templates/js/translated/part.js:2039
-#: templates/js/translated/part.js:2114 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr ""
@@ -323,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2048 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -355,7 +358,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr ""
@@ -422,107 +425,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr ""
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr ""
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr ""
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -653,7 +656,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -757,7 +760,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -767,8 +770,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -794,13 +798,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -820,12 +826,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1467 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -891,7 +897,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -924,7 +930,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -937,7 +943,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1012,8 +1018,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1023,12 +1029,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1050,13 +1057,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2561
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1098,8 +1106,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1114,7 +1122,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1147,9 +1155,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1163,8 +1172,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1240,8 +1249,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1407,7 +1416,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1485,8 +1494,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1618,8 +1627,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1636,7 +1645,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1929,9 +1938,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1939,7 +1948,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1950,7 +1959,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1959,7 +1968,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1967,7 +1976,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1976,10 +1985,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1987,10 +1996,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2418,7 +2427,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2750,41 +2759,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2792,131 +2810,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2935,7 +2955,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2996,7 +3018,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3029,8 +3051,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3056,12 +3078,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3071,11 +3093,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3101,8 +3123,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3110,10 +3132,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3133,24 +3155,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3167,24 +3189,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3197,7 +3220,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3205,7 +3228,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3217,8 +3240,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3301,7 +3324,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3315,7 +3338,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3324,19 +3347,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3352,7 +3375,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3381,7 +3404,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3395,9 +3418,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3418,9 +3441,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3452,7 +3475,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3483,28 +3506,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3515,7 +3538,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3539,7 +3562,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3579,7 +3602,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3631,7 +3654,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3663,10 +3686,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1371
-#: templates/js/translated/part.js:1527 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3681,7 +3704,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3693,7 +3716,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3802,9 +3825,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3974,7 +3997,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3985,7 +4008,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4351,18 +4374,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4370,18 +4396,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4390,12 +4419,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4430,6 +4460,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4568,12 +4599,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4581,32 +4612,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1484
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4614,7 +4645,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4626,8 +4657,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1374 templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4643,115 +4674,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1378 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2058 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4802,7 +4833,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4813,423 +4844,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1506 templates/js/translated/part.js:1763
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2109
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2118
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2126
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2133
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5237,189 +5304,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5451,7 +5518,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5508,8 +5575,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5557,7 +5624,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5594,118 +5661,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5716,6 +5793,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5805,12 +5910,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5838,38 +5943,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1597
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5921,15 +6026,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5942,7 +6038,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5961,7 +6057,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6024,8 +6120,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1366 templates/js/translated/part.js:1368
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6088,27 +6184,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6157,28 +6258,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6410,6 +6531,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6428,7 +6553,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6460,8 +6585,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6516,13 +6642,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6937,7 +7059,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6945,7 +7067,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7118,10 +7240,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7395,7 +7513,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7476,6 +7595,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7493,7 +7620,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7502,7 +7629,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7670,67 +7797,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7759,12 +7886,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7776,7 +7903,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7946,64 +8073,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8081,7 +8208,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8115,7 +8242,7 @@ msgid "Forgot Password?"
msgstr ""
#: templates/account/login.html:53
-msgid "or use SSO"
+msgid "Sign in using third-party SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
@@ -8316,7 +8443,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8469,7 +8596,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8551,16 +8678,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8691,7 +8808,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1565
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8776,13 +8893,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8990,9 +9107,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1459
-#: templates/js/translated/part.js:1996 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9004,7 +9121,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9077,34 +9194,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9184,61 +9301,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9259,7 +9376,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9593,7 +9710,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9617,7 +9734,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9650,8 +9767,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9669,11 +9786,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9794,7 +9911,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9838,334 +9955,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1547
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1648
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1514
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1545
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1569
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1915
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1754
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1759
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1764
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1777
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1935 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2015
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2031
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2095
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2146 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2147 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2153
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2175
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2270 templates/js/translated/part.js:2271
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2273
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2279
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2335
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2431
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2447
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2492
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10293,388 +10434,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10699,7 +10840,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10915,6 +11056,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11209,34 +11354,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index c85a963387..636f0a537d 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -34,7 +34,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -204,18 +204,18 @@ msgstr ""
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr ""
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr ""
@@ -229,12 +229,13 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr ""
@@ -271,19 +272,20 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr ""
@@ -292,24 +294,25 @@ msgstr ""
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr ""
@@ -322,7 +325,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr ""
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr ""
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr ""
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr ""
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -652,7 +655,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "تایید"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 4529ce1ee6..b0a7cdc2a1 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -34,7 +34,7 @@ msgstr "Entrer la date"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Entrer la date"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Notes"
@@ -204,18 +204,18 @@ msgstr "Pièce jointe"
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Lien"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Lien vers une url externe"
@@ -229,12 +229,13 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Utilisateur"
@@ -271,19 +272,20 @@ msgstr "Erreur lors du renommage du fichier"
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Nom"
@@ -292,24 +294,25 @@ msgstr "Nom"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Description"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "parent"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Chemin d'accès"
@@ -354,7 +357,7 @@ msgstr "Erreur serveur"
msgid "An error has been logged by the server."
msgstr "Une erreur a été loguée par le serveur."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
@@ -421,107 +424,107 @@ msgstr "URL du fichier image distant"
msgid "Downloading images from remote URL is not enabled"
msgstr "Le téléchargement des images depuis une URL distante n'est pas activé"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tchèque"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Danois"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Grec"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Espagnol"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Perse"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hébreu"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Hongrois"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italien"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japonais"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Coréen"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Néerlandais"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norvégien"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugais"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugais (Brésilien)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Russe"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Suédois"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thaïlandais"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamien"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Chinois"
@@ -652,7 +655,7 @@ msgstr "Séparer de l'élément parent"
msgid "Split child item"
msgstr "Fractionner l'élément enfant"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Articles de stock fusionnés"
@@ -756,7 +759,7 @@ msgstr "Ordre de Fabrication"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Ordres de Fabrication"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "BuildOrder associé a cette fabrication"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "BuildOrder associé a cette fabrication"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Pièce"
@@ -890,7 +896,7 @@ msgstr "Code de lot"
msgid "Batch code for this build output"
msgstr "Code de lot pour ce build output"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Date de création"
@@ -923,7 +929,7 @@ msgstr "Utilisateur ayant émis cette commande de construction"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Utilisateur responsable de cette commande de construction"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Lien Externe"
@@ -1011,8 +1017,8 @@ msgstr "Construction à laquelle allouer des pièces"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Article en stock"
@@ -1022,12 +1028,13 @@ msgstr "Stock d'origine de l'article"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Stock d'origine de l'article"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Quantité"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
@@ -1113,7 +1121,7 @@ msgstr "Quantité entière requise, car la facture de matériaux contient des pi
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -1146,9 +1154,10 @@ msgstr "Une liste d'ordre de production doit être fourni"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Emplacement"
@@ -1162,8 +1171,8 @@ msgstr "Emplacement des ordres de production achevés"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "État"
@@ -1239,8 +1248,8 @@ msgstr "La quantité nécessaire n'a pas encore été complétée"
msgid "Build order has incomplete outputs"
msgstr "L'ordre de production a des sorties incomplètes"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Article du BOM"
@@ -1406,7 +1415,7 @@ msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Date Cible"
@@ -1484,8 +1493,8 @@ msgstr "Pièces allouées"
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr "Sorties de Construction terminées"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Pieces jointes"
@@ -1635,7 +1644,7 @@ msgstr "Allocation terminée"
msgid "All untracked stock items have been allocated"
msgstr "Tous les articles de stock non suivis ont été alloués"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Nouvel ordre de construction"
@@ -1928,9 +1937,9 @@ msgstr "Copier les templates de paramètres de catégorie"
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:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Modèle"
@@ -1938,7 +1947,7 @@ msgstr "Modèle"
msgid "Parts are templates by default"
msgstr "Les pièces sont des templates par défaut"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Assemblage"
msgid "Parts can be assembled from other components by default"
msgstr "Les composantes peuvent être assemblées à partir d'autres composants par défaut"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Composant"
@@ -1958,7 +1967,7 @@ msgstr "Composant"
msgid "Parts can be used as sub-components by default"
msgstr "Les composantes peuvent être utilisées comme sous-composants par défaut"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Achetable"
@@ -1966,7 +1975,7 @@ msgstr "Achetable"
msgid "Parts are purchaseable by default"
msgstr "Les pièces sont achetables par défaut"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Vendable"
@@ -1975,10 +1984,10 @@ msgstr "Vendable"
msgid "Parts are salable by default"
msgstr "Les pièces sont vendables par défaut"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Traçable"
@@ -1986,10 +1995,10 @@ msgstr "Traçable"
msgid "Parts are trackable by default"
msgstr "Les pièces sont traçables par défaut"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtuelle"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Prix"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr "Actif"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "Jeton"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Confidentiel"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "ID message"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr "Identifiant unique pour ce message"
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr "Hôte"
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr "Hôte à partir duquel ce message a été reçu"
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Entête"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "En-tête de ce message"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Corps"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr "Corps de ce message"
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr "Le travail sur ce message est-il terminé ?"
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Nouveau {verbose_name}"
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr "Une nouvelle commande a été créée et vous a été assignée"
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr "Articles reçus"
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr "Des articles d'un bon de commande ont été reçus"
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Téléverser un fichier"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr "Composantes importées"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Point de contact"
msgid "Link to external company information"
msgstr "Lien externe vers les informations de l'entreprise"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Cette entreprise fabrique-t-elle des pièces?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Devise"
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Fabricant"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Sélectionner un fabricant"
@@ -3070,11 +3092,11 @@ msgstr "Sélectionner un fabricant"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Valeur"
@@ -3109,10 +3131,10 @@ msgstr "Valeur"
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Fournisseur"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr "Description de la pièce du fournisseur"
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Note"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Frais minimums (par exemple frais de stock)"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Conditionnement"
@@ -3196,7 +3219,7 @@ msgstr "Conditionnement de l'article"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr "Nombre de paquet"
@@ -3204,7 +3227,7 @@ msgstr "Nombre de paquet"
msgid "Unit quantity supplied in a single pack"
msgstr "Nombre d'unités fournies dans un seul paquet"
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "plusieurs"
@@ -3216,8 +3239,8 @@ msgstr "Commande multiple"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Disponible"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Client"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Téléphone"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Charger une image"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Télécharger une image"
@@ -3351,7 +3374,7 @@ msgstr "Créer une nouvelle pièce fournisseur"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Nouvelle pièce fournisseur"
@@ -3380,7 +3403,7 @@ msgstr "Pièces du fabricant"
msgid "Create new manufacturer part"
msgstr "Créer une nouvelle pièce de fabricant"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Nouvelle pièce de fabricant"
@@ -3394,9 +3417,9 @@ msgstr "Stock fournisseur"
#: 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Fabricants"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Article de la commande"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Fournisseurs"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Supprimer les pièces du fournisseur"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Supprimer"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Paramètres"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Supprimer les paramètres"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Ajouter un paramètre"
@@ -3538,7 +3561,7 @@ msgstr "Articles en stock assignés"
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Pièce fournisseur"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Commander un composant"
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Tarif"
@@ -3692,7 +3715,7 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Éléments en stock"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Commande d’achat"
@@ -3973,7 +3996,7 @@ msgstr "Pièce fournisseur"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr "Reçu"
@@ -3984,7 +4007,7 @@ msgstr "Nombre d'éléments reçus"
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Prix d'achat"
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "Supprimer la colonne"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr "Dupliquer la sélection"
@@ -4389,12 +4418,13 @@ msgstr "Dupliquer la sélection"
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Supprimer la ligne"
@@ -4429,6 +4459,7 @@ msgstr "Commande déjà traitée. Les fichiers ne peuvent pas être chargés."
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "ID de composant"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Révision"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "En Commande"
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Composantes"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Catégorie de composant"
@@ -4812,423 +4843,459 @@ msgstr "Catégorie de composant"
msgid "Part Categories"
msgstr "Catégories de composants"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Description du composant"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Catégorie"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr "Requis"
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr "Données"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Surplus"
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr "Devise d'achat de l'item"
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr "Composant créé avec succès"
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr "Actualiser"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr "Prise d'inventaire"
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Fabricants de composants"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr "Sélectionner un format de fichier"
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Liste des composants"
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "Dernier numéro de série"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Rechercher un numéro de série"
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr "Calculer"
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr "Tester le modèle"
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr "Requis pour"
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Numéro de série"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr "Prise d'inventaire"
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr "Aucune valeur définie"
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr "Rapports"
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr "Sélectionner un thème"
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Confirmer"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr "Délier"
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr "Supprimer l'article de stock"
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr "Télécharger le template de la BOM"
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr "Sélectionner un format de fichier"
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr "Prochain numéro de série disponible"
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr "Dernier numéro de série"
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr "Pas d'informations sur l'utilisateur"
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr "Livré au client"
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Attributs de la pièce"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr "Options de création de pièce"
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr "Options de duplication de pièces"
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr "Options de fournisseur"
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "Ajouter une catégorie de pièce"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr "Créer un stock initial"
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Copier l'image"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Copier les paramètres"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "Modifier la pièce"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr "Pièce modifiée"
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr "Créer une variante de pièce"
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr "Stock bas"
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "Pièce traçable"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr "Pièce virtuelle"
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr "Pièce vendable"
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Aucune variante trouvée"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "Aucune pièce trouvée"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Aucune catégorie"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Afficher sous forme de liste"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Afficher sous forme de grille"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Afficher sous forme d'arborescence"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr "Modifier le résultat du test"
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr "Supprimer le résultat du test"
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)"
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr "Trouver un numéro de série"
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr "Entrer le numéro de série"
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr "Entrer un numéro de série"
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr "Aucun numéro de série correspondant"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr "Plus d'un résultat correspondant trouvé"
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr "Confirmer l'assignation de stock"
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr "Assigner le stock au client"
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr "Attention : l'opération de fusion est irréversible"
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr "Certaines informations seront perdues lors de la fusion des articles en stock"
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr "L'historique des transactions de stock sera supprimé pour les éléments fusionnés"
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr "Les informations sur la pièce du fournisseur seront supprimées pour les éléments fusionnés"
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr "Confirmer la fusion de l'article en stock"
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr "Fusionner les articles en stock"
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr "Transférer le stock"
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr "Transférer"
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr "Compter le stock"
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr "Compter"
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr "Supprimer du stock"
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr "Supprimer"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr "Ajouter du stock"
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "Ajouter"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr "Supprimer le stock"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "La quantité ne peut pas être ajustée pour un stock sérialisé"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr "Spécifiez la quantité du stock"
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr "Vous devez sélectionner au moins un article en stock disponible"
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr "RÉUSSI"
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr "ÉCHEC"
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr "AUCUN RÉSULTAT"
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr "Ajouter un résultat de test"
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr "Aucun résultat de test trouvé"
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr "Date du test"
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "En production"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr "Article en stock installé dans un autre article en stock"
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr "Assigné à une commande de vente"
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Aucun emplacement de stock défini"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr "L'article de stock est en production"
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr "L'article en stock a été assigné à une commande de vente"
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr "L'article en stock a été assigné à un client"
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr "L'article de stock sérialisé a été alloué"
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr "L'article de stock a été complètement alloué"
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr "L'article de stock a été partiellement alloué"
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr "L'article en stock a été installé dans un autre article"
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr "L'article en stock a expiré"
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr "L'article en stock va bientôt expirer"
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr "L'article de stock a été rejeté"
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr "L'article de stock est perdu"
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr "L'article de stock est détruit"
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr "Epuisé"
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr "Pièce de fournisseur non précisée"
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr "Aucun article de stock ne correspond à la requête"
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr "Définir l'état du stock"
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr "Sélectionner le code de statut"
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr "Le code de statut doit être sélectionné"
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "Détails"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "L'emplacement n'existe plus"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr "La commande d'achat n'existe plus"
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr "Le client n'existe plus"
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr "L'article de stock n'existe plus"
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr "Ajouté"
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr "Supprimé"
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr "Achetable"
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Affichage du calendrier"
@@ -11206,35 +11351,35 @@ msgstr "Droits"
msgid "Important dates"
msgstr "Dates importantes"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Droit défini"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Groupe"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Vue"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Droit de voir des éléments"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Droit d'ajouter des éléments"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Modifier"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Droit de modifier des élément"
-#: users/models.py:224
+#: users/models.py:225
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 5f39884091..dcd01c6d07 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -34,7 +34,7 @@ msgstr "הזן תאריך סיום"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "הזן תאריך סיום"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -204,18 +204,18 @@ msgstr "קובץ מצורף"
msgid "Select file to attach"
msgstr "בחר קובץ לצירוף"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "קישור"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "קישור חיצוני"
@@ -229,12 +229,13 @@ msgstr "הערה"
msgid "File comment"
msgstr "הערת קובץ"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "משתמש"
@@ -271,19 +272,20 @@ msgstr "שגיאה בשינוי שם פריט"
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "שם"
@@ -292,24 +294,25 @@ msgstr "שם"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "תיאור"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "מקור"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "גרמנית"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "יוונית"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "אנגלית"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "ספרדית"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "ספרדית (מקסיקנית)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "צרפתית"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "עברית"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "איטלקית"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "יפנית"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "קוריאנית"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "הולנדית"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "נורווגית"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "פולנית"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "רוסית"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "שוודית"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "תאילנדית"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "טורקית"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "ווייטנאמית"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "סינית"
@@ -652,7 +655,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "רכיב"
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "כמות"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "מספרים סידוריים"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "אשר"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index f27f69e49e..58f1650663 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -34,7 +34,7 @@ msgstr "Dátum megadása"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Dátum megadása"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Megjegyzések"
@@ -204,18 +204,18 @@ msgstr "Melléklet"
msgid "Select file to attach"
msgstr "Válaszd ki a mellekelni kívánt fájlt"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link külső URL-re"
@@ -229,12 +229,13 @@ msgstr "Megjegyzés"
msgid "File comment"
msgstr "Leírás, bővebb infó"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Felhasználó"
@@ -271,19 +272,20 @@ msgstr "Hiba a fájl átnevezésekor"
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Név"
@@ -292,24 +294,25 @@ msgstr "Név"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Leírás"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "szülő"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Elérési út"
@@ -354,7 +357,7 @@ msgstr "Kiszolgálóhiba"
msgid "An error has been logged by the server."
msgstr "A kiszolgáló egy hibaüzenetet rögzített."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
@@ -421,107 +424,107 @@ msgstr "A távoli kép URL-je"
msgid "Downloading images from remote URL is not enabled"
msgstr "Képek letöltése távoli URL-ről nem engedélyezett"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Cseh"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Dán"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Német"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Görög"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Angol"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spanyol (Mexikói)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Fárszi/Perzsa"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francia"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Héber"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Magyar"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Olasz"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japán"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreai"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Holland"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norvég"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Lengyel"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugál"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugál (Brazíliai)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Orosz"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr "Szlovén"
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Svéd"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Tháj"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Török"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnámi"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Kínai"
@@ -652,7 +655,7 @@ msgstr "Szülő tételből szétválasztva"
msgid "Split child item"
msgstr "Szétválasztott gyermek tétel"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Összevont készlet tétel"
@@ -756,7 +759,7 @@ msgstr "Gyártási utasítás"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Gyártási utasítások"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Alkatrész"
@@ -890,7 +896,7 @@ msgstr "Batch kód"
msgid "Batch code for this build output"
msgstr "Batch kód a gyártás kimenetéhez"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Létrehozás dátuma"
@@ -923,7 +929,7 @@ msgstr "Felhasználó aki ezt a gyártási utasítást kiállította"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Felhasználó aki felelős ezért a gyártási utasításért"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Külső link"
@@ -1011,8 +1017,8 @@ msgstr "Gyártás amihez készletet foglaljunk"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Készlet tétel"
@@ -1022,12 +1028,13 @@ msgstr "Forrás készlet tétel"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Forrás készlet tétel"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Mennyiség"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Add meg a mennyiséget a gyártás kimenetéhez"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
@@ -1113,7 +1121,7 @@ msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyed
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Sorozatszámok"
@@ -1146,9 +1154,10 @@ msgstr "A gyártási kimenetek listáját meg kell adni"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Hely"
@@ -1162,8 +1171,8 @@ msgstr "A kész gyártási kimenetek helye"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Állapot"
@@ -1240,8 +1249,8 @@ msgstr "Szükséges gyártási mennyiség nem lett elérve"
msgid "Build order has incomplete outputs"
msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
@@ -1312,11 +1321,11 @@ msgstr "Helyettesítő alkatrészek foglalásának engedélyezése"
#: build/serializers.py:850
msgid "Optional Items"
-msgstr ""
+msgstr "Opcionális tételek"
#: build/serializers.py:851
msgid "Allocate optional BOM items to build order"
-msgstr ""
+msgstr "Opcionális tételek lefoglalása a gyártáshoz"
#: build/tasks.py:100
msgid "Stock required for build order"
@@ -1407,7 +1416,7 @@ msgstr "Még nincs lefoglalva a szükséges készlet"
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Cél dátum"
@@ -1485,8 +1494,8 @@ msgstr "Lefoglalt alkatrészek"
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1618,8 +1627,8 @@ msgstr "Befejezett gyártási kimenetek"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Mellékletek"
@@ -1636,7 +1645,7 @@ msgstr "Lefoglalás kész"
msgid "All untracked stock items have been allocated"
msgstr "A szükséges készlet már mind le lett foglalva"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Új gyártási utasítás"
@@ -1929,9 +1938,9 @@ msgstr "Kategória paraméter sablonok másolása"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Sablon"
@@ -1939,7 +1948,7 @@ msgstr "Sablon"
msgid "Parts are templates by default"
msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1950,7 +1959,7 @@ msgstr "Gyártmány"
msgid "Parts can be assembled from other components by default"
msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Összetevő"
@@ -1959,7 +1968,7 @@ msgstr "Összetevő"
msgid "Parts can be used as sub-components by default"
msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Beszerezhető"
@@ -1967,7 +1976,7 @@ msgstr "Beszerezhető"
msgid "Parts are purchaseable by default"
msgstr "Alkatrészek alapból beszerezhetők legyenek"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Értékesíthető"
@@ -1976,10 +1985,10 @@ msgstr "Értékesíthető"
msgid "Parts are salable by default"
msgstr "Alkatrészek alapból eladhatók legyenek"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Követésre kötelezett"
@@ -1987,10 +1996,10 @@ msgstr "Követésre kötelezett"
msgid "Parts are trackable by default"
msgstr "Alkatrészek alapból követésre kötelezettek legyenek"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtuális"
@@ -2172,19 +2181,19 @@ msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozó
#: common/models.py:1225
msgid "Autofill Serial Numbers"
-msgstr ""
+msgstr "Sorozatszámok automatikus kitöltése"
#: common/models.py:1226
msgid "Autofill serial numbers in forms"
-msgstr ""
+msgstr "Sorozatszámok automatikus kitöltése a formokon"
#: common/models.py:1232
msgid "Delete Depleted Stock"
-msgstr ""
+msgstr "Kimerült készlet törlése"
#: common/models.py:1233
msgid "Determines default behaviour when a stock item is depleted"
-msgstr ""
+msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy"
#: common/models.py:1239
msgid "Batch Code Template"
@@ -2418,7 +2427,7 @@ msgstr "Esemény integráció engedélyezése"
msgid "Enable plugins to respond to internal events"
msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára"
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny"
@@ -2750,41 +2759,50 @@ msgstr "Alkatrész ütemezés"
msgid "Display part scheduling information"
msgstr "Alkatrész ütemezési információk megjelenítése"
-#: common/models.py:1778
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
+msgstr "Alkatrész leltár"
+
+#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr "Alkatrész leltározási információk megjelenítése"
+
+#: common/models.py:1785
msgid "Table String Length"
msgstr "Táblázati szöveg hossz"
-#: common/models.py:1779
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban"
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr "Ársáv mennyiség"
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Ár"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr "Egységár egy meghatározott mennyiség esetén"
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr "Végpont"
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr "Végpont ahol ez a webhook érkezik"
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr "Webhook neve"
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2792,131 +2810,133 @@ msgstr "Webhook neve"
msgid "Active"
msgstr "Aktív"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr "Aktív-e ez a webhook"
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "Token"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr "Token a hozzáféréshez"
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Titok"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr "Megosztott titok a HMAC-hoz"
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "Üzenet azonosító"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr "Egyedi azonosító ehhez az üzenethez"
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr "Kiszolgáló"
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr "Kiszolgáló ahonnan ez az üzenet érkezett"
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Fejléc"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "Üzenet fejléce"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Törzs"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr "Üzenet törzse"
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr "Végpont amin ez az üzenet érkezett"
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr "Dolgozott rajta"
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr "Befejeződött a munka ezzel az üzenettel?"
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr "Id"
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr "Cím"
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr "Közzétéve"
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr "Szerző"
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr "Összefoglaló"
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr "Elolvasva"
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr "Elolvasva?"
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr "Új {verbose_name}"
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr "Egy új megrendelés létrehozva, és hozzád rendelve"
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr "Készlet érkezett"
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr "Készlet érkezett egy beszerzési megrendeléshez"
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr "Plugin hiba"
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Fájl feltöltése"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Mezők egyeztetése"
@@ -2935,7 +2955,9 @@ msgstr "Importált alkatrészek"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2996,7 +3018,7 @@ msgstr "Kapcsolattartó"
msgid "Link to external company information"
msgstr "Link a külső céginformációhoz"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Kép"
@@ -3029,8 +3051,8 @@ msgid "Does this company manufacture parts?"
msgstr "Gyárt ez a cég alkatrészeket?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Pénznem"
@@ -3056,12 +3078,12 @@ msgstr "Válassz alkatrészt"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Gyártó"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Gyártó kiválasztása"
@@ -3071,11 +3093,11 @@ msgstr "Gyártó kiválasztása"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr "MPN"
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Gyártói cikkszám"
@@ -3101,8 +3123,8 @@ msgstr "Paraméter neve"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Érték"
@@ -3110,10 +3132,10 @@ msgstr "Érték"
msgid "Parameter value"
msgstr "Paraméter értéke"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Mértékegységek"
@@ -3133,24 +3155,24 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Beszállító"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr "SKU"
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
@@ -3167,24 +3189,25 @@ msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Megjegyzés"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "alap költség"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Csomagolás"
@@ -3197,7 +3220,7 @@ msgstr "Alkatrész csomagolás"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr "Csomagolási mennyiség"
@@ -3205,7 +3228,7 @@ msgstr "Csomagolási mennyiség"
msgid "Unit quantity supplied in a single pack"
msgstr "Egy csomagban lévő mennyiség"
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "többszörös"
@@ -3217,8 +3240,8 @@ msgstr "Többszörös rendelés"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Elérhető"
@@ -3301,7 +3324,7 @@ msgstr "Kép törlése"
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Vevő"
@@ -3315,7 +3338,7 @@ msgid "Phone"
msgstr "Telefonszám"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr "Kép eltávolítása"
@@ -3324,19 +3347,19 @@ msgid "Remove associated image from this company"
msgstr "Céghez rendelt kép eltávolítása"
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr "Törlés"
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Kép feltöltése"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Kép letöltése"
@@ -3352,7 +3375,7 @@ msgstr "Új beszállítói alkatrész létrehozása"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Új beszállítói alkatrész"
@@ -3381,7 +3404,7 @@ msgstr "Gyártói alkatrészek"
msgid "Create new manufacturer part"
msgstr "Új gyártói alkatrész létrehozása"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Új gyártói alkatrész"
@@ -3395,9 +3418,9 @@ msgstr "Beszállítói készlet"
#: 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3418,9 +3441,9 @@ msgstr "Új beszerzési rendelés"
#: 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3452,7 +3475,7 @@ msgstr "Gyártók"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Alkatrész rendelés"
@@ -3483,28 +3506,28 @@ msgid "Suppliers"
msgstr "Beszállítók"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Beszállítói alkatrész törlése"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Törlés"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Paraméterek"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3515,7 +3538,7 @@ msgid "Delete parameters"
msgstr "Paraméterek törlése"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Paraméter hozzáadása"
@@ -3539,7 +3562,7 @@ msgstr "Hozzárendelt készlet tételek"
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Beszállítói alkatrész"
@@ -3579,7 +3602,7 @@ msgstr "Beszállítói alkatrész műveletek"
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Alkatrész rendelése"
@@ -3631,7 +3654,7 @@ msgstr "Új készlet tétel létrehozása"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Új készlet tétel"
@@ -3663,10 +3686,10 @@ msgstr "Alkatrész elérhetőség frissítése"
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Készlet"
@@ -3681,7 +3704,7 @@ msgstr "Beszállító alkatrész árazás"
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Árazás"
@@ -3693,7 +3716,7 @@ msgstr "Árazás"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Készlet tételek"
@@ -3802,15 +3825,15 @@ msgstr "Nincs egyező beszerzési rendelés"
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
#: order/api.py:1258
msgid "Unknown"
-msgstr ""
+msgstr "Ismeretlen"
#: order/models.py:83
msgid "Order description"
@@ -3974,7 +3997,7 @@ msgstr "Beszállítói alkatrész"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr "Beérkezett"
@@ -3985,7 +4008,7 @@ msgstr "Érkezett tételek száma"
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Beszerzési ár"
@@ -4351,18 +4374,21 @@ msgstr "A teljes költség nem számolható"
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr "Hiányzó kiválasztás a következő oszlopokhoz"
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr "Többszörös kiválasztás található, lásd lentebb. Javítsd őket aztán próbáld újraküldeni."
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4370,18 +4396,21 @@ msgstr "Kiválasztás küldése"
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr "Fájl mezők"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "Oszlop eltávolítása"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr "Kijelöltek másolása"
@@ -4390,12 +4419,13 @@ msgstr "Kijelöltek másolása"
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Sor törlése"
@@ -4430,6 +4460,7 @@ msgstr "A rendelést már feldolgozták. Így már nem lehet fájlokat feltölte
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4568,12 +4599,12 @@ msgstr "A {part} egységára {price}-ra módosítva"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}"
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Alkatrész ID"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr "Alkatrész neve"
@@ -4581,32 +4612,32 @@ msgstr "Alkatrész neve"
msgid "Part Description"
msgstr "Alkatrész leírása"
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr "IPN"
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Változat"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Kulcsszavak"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "Kategória ID"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr "Kategória neve"
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr "Alapértelmezett készlethely ID"
@@ -4614,7 +4645,7 @@ msgstr "Alapértelmezett készlethely ID"
msgid "Default Supplier ID"
msgstr "Alapértelmezett beszállító ID"
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Minimális készlet"
@@ -4626,8 +4657,8 @@ msgstr "Készleten"
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "Rendelve"
@@ -4643,115 +4674,115 @@ msgid "Allocated"
msgstr "Lefoglalva"
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr "Gyártásban"
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr "Minimum költség"
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr "Maximum költség"
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr "Szülő ID"
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr "Szülő neve"
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "Kategória elérési út"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Alkatrészek"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr "Alkatrészjegyzék szint"
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr "Alkatrészjegyzék tétel ID"
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr "Szülő IPN"
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr "Alkatrész IPN"
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr "Minimum ár"
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr "Maximum ár"
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr "Beérkező beszerzési rendelés"
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr "Kimenő vevői rendelés"
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr "Gyártással előállított készlet"
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr "A gyártási utasításhoz szükséges készlet"
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr "Érvényes"
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr "Teljes alkatrészjegyzék jóváhagyása"
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr "Ennek az opciónak ki kll lennie választva"
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr "Nullánál nagyobb kell legyen"
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr "Érvényes mennyiségnek kell lennie"
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr "Hely megadása a kezdeti alkarész készlethez"
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr "Ez a mező kötelező"
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Alapértelmezett hely"
@@ -4802,7 +4833,7 @@ msgstr "Ikon (opcionális)"
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mert már vannak itt alkatrészek!"
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -4813,423 +4844,459 @@ msgstr "Alkatrész kategória"
msgid "Part Categories"
msgstr "Alkatrész kategóriák"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr "Hibás választás a szülő alkatrészre"
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "A '{p1}' alkatrész a '{p2}' alkatrészjegyzékében már szerepel (rekurzív)"
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr "Létezik már készlet tétel ilyen a sorozatszámmal"
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik."
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!"
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Alkatrész neve"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "Sablon-e"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "Ez egy sablon alkatrész?"
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr "Ez az alkatrész egy másik változata?"
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Ebből a sablonból"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Alkatrész leírása"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben"
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Kategória"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "Alkatrész kategória"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr "Belső cikkszám"
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr "Alapban hol tároljuk ezt az alkatrészt?"
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr "Alapértelmezett beszállító"
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr "Alapértelmezett beszállítói alkatrész"
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr "Alapértelmezett lejárat"
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire"
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr "Minimálisan megengedett készlet mennyiség"
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr "Az alkatrész raktározási mértékegységei"
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr "Gyártható-e ez az alkatrész más alkatrészekből?"
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?"
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?"
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?"
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "Aktív-e ez az alkatrész?"
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?"
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr "Alkatrész megjegyzések"
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr "Alkatrészjegyzék ellenőrző összeg"
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr "Tárolt alkatrészjegyzék ellenőrző összeg"
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr "Alkatrészjegyzéket ellenőrizte"
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr "Alkatrészjegyzék ellenőrzési dátuma"
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr "Létrehozó"
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr "Utolsó leltár"
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr "Árszámítások gyorstárazásához használt pénznem"
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr "Frissítve"
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr "Legutóbbi ár frissítés időpontja"
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr "Minimum alkatrészjegyzék költség"
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr "Összetevők minimum költsége"
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr "Maximum alkatrészjegyzék költség"
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr "Összetevők maximum költsége"
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr "Minimum beszerzési ár"
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr "Eddigi minimum beszerzési költség"
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr "Maximum beszerzési ár"
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr "Eddigi maximum beszerzési költség"
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr "Minimum belső ár"
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr "Minimum költség a belső ársávok alapján"
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr "Maximum belső ár"
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr "Maximum költség a belső ársávok alapján"
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr "Minimum beszállítói ár"
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr "Minimum alkatrész ár a beszállítóktól"
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr "Maximum beszállítói ár"
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr "Maximum alkatrész ár a beszállítóktól"
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr "Minimum alkatrészváltozat ár"
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr "Alkatrészváltozatok számolt minimum költsége"
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr "Maximum alkatrészváltozat ár"
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr "Alkatrészváltozatok számolt maximum költsége"
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr "Számított általános minimum költség"
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr "Számított általános maximum költség"
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr "Minimum eladási ár"
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr "Minimum eladási ár az ársávok alapján"
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr "Maximum eladási ár"
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr "Maximum eladási ár az ársávok alapján"
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr "Minimum eladási költség"
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr "Eddigi minimum eladási ár"
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr "Maximum eladási költség"
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr "Eddigi maximum eladási ár"
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr "Leltározható alkatrész"
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr "Teljes készlet a leltárkor"
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr "Dátum"
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr "Leltározva ekkor"
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr "További megjegyzések"
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr "Leltározta"
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni"
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr "Erre az alkatrészre már létezik teszt ilyen névvel"
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?"
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?"
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr "Paraméter mértékegysége"
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr "Paraméter leírása"
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr "Adat"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr "Alkatrész ID vagy alkatrész név"
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr "Egyedi alkatrész ID értéke"
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr "Szint"
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5237,189 +5304,189 @@ msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
msgid "Optional"
msgstr "Opcionális"
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr "Fogyóeszköz"
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)"
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)"
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr "Örökölt"
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik"
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Változatok"
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén"
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész"
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr "Alkatrész kapcsolat nem hozható létre önmagával"
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr "Már létezik duplikált alkatrész kapcsolat"
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr "Beszerzési pénzneme ennek a készlet tételnek"
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr "Frissítés"
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr "Alkatrész árak frissítése"
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt"
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata"
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr "Helyettesítő alkatrészek másolása"
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor"
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr "Meglévő alkatrészjegyzék törlése"
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt"
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr "Nincs megadva alkatrész oszlop"
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr "Több egyező alkatrész is található"
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr "Nincs egyező alkatrész"
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr "Az alkatrész nem lett összetevőként jelölve"
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr "Mennyiség nincs megadva"
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr "Érvénytelen mennyiség"
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr "Legalább egy alkatrészjegyzék tétel szükséges"
@@ -5451,7 +5518,7 @@ msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzéket utoljár
msgid "The BOM for %(part)s has not been validated."
msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék még nincs jóváhagyva."
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr "Alkatrészjegyzék műveletek"
@@ -5508,8 +5575,8 @@ msgstr "Alkatrész létrehozása"
msgid "New Part"
msgstr "Új alkatrész"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Opciók"
@@ -5557,7 +5624,7 @@ msgstr "Alkatrész sikeresen létrehozva"
msgid "Import Parts"
msgstr "Alkatrészek importálása"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr "Alkatrész másolása"
@@ -5594,119 +5661,129 @@ msgstr "Ütemezési adatok frissítése"
msgid "Refresh"
msgstr "Frissítés"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr "Leltár információ hozzáadása"
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr "Leltár"
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr "Alkatrész teszt sablonok"
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr "Teszt sablon hozzáadása"
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr "Vevői rendeléshez foglalások"
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr "Alkatrész megjegyzések"
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr "Alkatrész változatok"
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr "Új változat létrehozása"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr "Új változat"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr "Paraméter hozzáadása"
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr "Kapcsolódó alkatrészek"
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr "Kapcsolódó hozzáadása"
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "Alkatrészjegyzék"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr "Exportálási műveletek"
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr "Alkatrészjegyzék exportálása"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr "Alkatrészjegyzék riport nyomtatása"
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr "Alkatrészjegyzék feltöltése"
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr "Alkatrészjegyzék másolása"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr "Alkatrészjegyzék jóváhagyása"
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr "Alkatrészjegyzék tétel hozzáadása"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr "Gyártmányok"
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr "Alkatrész gyártások"
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr "Gyártáshoz foglalások"
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Alkatrész beszállítók"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Alkatrész gyártók"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr "Gyártói alkatrészek törlése"
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr "Kapcsolódó alkatrész"
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr "Kapcsolódó alkatrész hozzáadása"
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr "Teszt eredmény sablon hozzáadása"
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
-msgstr "Nincs megfelelő jogosultság."
+msgid "Insufficient privileges."
+msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
msgid "Return to Parts"
@@ -5716,6 +5793,34 @@ msgstr "Vissza az alkatrészekhez"
msgid "Import Parts from File"
msgstr "Alkatrészek importálása fájlból"
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr "Formátum"
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr "Fájlfomátum kiválasztása"
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Alkatrész lista"
@@ -5805,12 +5910,12 @@ msgstr "Virtuális (nem kézzelfogható alkatrész)"
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr "Inaktív"
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr "Alkatrész részletei"
@@ -5838,38 +5943,38 @@ msgid "Minimum stock level"
msgstr "Minimális készlet"
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr "Ártartomány"
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "Legutolsó sorozatszám"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Sorozatszámra keresés"
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr "Vonalkód hozzárendelése az alkatrészhez"
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr "Számítás"
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr "Alkatrészhez rendelt kép eltávolítása"
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr "Nincs egyező kép"
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr "Részletek elrejtése"
@@ -5921,15 +6026,6 @@ msgstr "Belső ár"
msgid "No pricing information is available for this part."
msgstr "Az alkatrészhez nem áll rendelkezésre árinformáció."
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr "Dátum"
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr "Ütemezett mennyiség"
@@ -5942,7 +6038,7 @@ msgstr "Változatok"
msgid "Scheduling"
msgstr "Ütemezés"
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr "Teszt sablonok"
@@ -5961,7 +6057,7 @@ msgstr "Árazás frissítése"
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr "Utoljára módosítva"
@@ -6024,8 +6120,8 @@ msgstr "Eladási ár"
msgid "Add Sell Price Break"
msgstr "Eladási ársáv hozzáadása"
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "Nincs készlet"
@@ -6088,27 +6184,32 @@ msgstr "Ismeretlen adatbázis"
msgid "{title} v{version}"
msgstr "{title} v{version}"
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr "Azonosítók egyeztetése"
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr "Alkatrész QR kódja"
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr "Válassz képet az alkatrészhez"
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr "Alkatrész képe frissítve"
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "Az alkatrész képe nem található"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr "Alkatrész árak"
@@ -6157,28 +6258,48 @@ msgid "Provides native support for barcodes"
msgstr "Alapvető vonalkód támogatást ad"
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr "InvenTree fejlesztők"
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr "InvenTree értesítések"
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr "Integrált kimenő értesítési módszerek"
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr "Email értesítések engedélyezése"
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr "Email küldés engedélyezése esemény értesítésekre"
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr "Link megnyitása"
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr "Plugin meta adatok"
@@ -6410,6 +6531,10 @@ msgstr "Riport asset fájl"
msgid "Asset file description"
msgstr "Asset fájl leírása"
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr "Szükséges alapanyagok"
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr "Szükséges ehhez"
@@ -6428,7 +6553,7 @@ msgstr "Készlet tétel teszt riport"
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Sorozatszám"
@@ -6460,8 +6585,9 @@ msgid "Installed Items"
msgstr "Beépített tételek"
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr "Sorozatszám"
@@ -6516,13 +6642,9 @@ msgstr "Vevői rendelés ID"
msgid "Purchase Order ID"
msgstr "Vevői rendelés azonosító"
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr "Leltár"
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr "Lejárati dátum"
@@ -6937,7 +7059,7 @@ msgstr "Teszt adatok hozzáadása"
msgid "Installed Stock Items"
msgstr "Beépített készlet tételek"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr "Készlet tétel beépítése"
@@ -6945,7 +7067,7 @@ msgstr "Készlet tétel beépítése"
msgid "Delete all test results for this stock item"
msgstr "Készlet tétel összes teszt eredményének törlése"
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr "Teszt eredmény hozzáadása"
@@ -7118,10 +7240,6 @@ msgstr "Ez a készlet tétel lejár %(item.expiry_date)s-n"
msgid "Stale"
msgstr "Állott"
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr "Utolsó leltár"
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Még nem volt leltározva"
@@ -7395,7 +7513,8 @@ msgstr "Mind megjelölése olvasottként"
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr "Értesítések"
@@ -7476,6 +7595,14 @@ msgstr "Az alap URL-je ennek a pluginnak %(email)s is an email address for user %(user_display)s."
msgstr "Erősítsd meg hogy a %(email)s email a %(user_display)s felhasználó email címe."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Megerősítés"
@@ -8114,7 +8241,7 @@ msgstr "Elfelejtett jelszó?"
#: templates/account/login.html:53
msgid "Sign in using third-party SSO"
-msgstr ""
+msgstr "Bejelentkezés külső fél által használt SSO-val"
#: templates/account/logout.html:5 templates/account/logout.html:8
#: templates/account/logout.html:20
@@ -8314,7 +8441,7 @@ msgid "Click on the following link to view this part"
msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez"
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr "Minimum mennyiség"
@@ -8467,7 +8594,7 @@ msgstr "Ez törli a vonalkód hozzárendelést"
msgid "Unlink"
msgstr "Leválasztás"
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr "Készlet tétel törlése"
@@ -8549,16 +8676,6 @@ msgstr "Bezárás"
msgid "Download BOM Template"
msgstr "Alkarészjegyzék sablon letöltése"
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr "Formátum"
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr "Fájlfomátum kiválasztása"
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr "Többszintű alkatrészjegyzék"
@@ -8689,7 +8806,7 @@ msgid "Includes variant and substitute stock"
msgstr "Változatokkal és helyettesítőkkel együtt"
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr "Változatokkal együtt"
@@ -8774,13 +8891,13 @@ msgstr "Gyártási utasítás befejezetlen"
msgid "Complete Build Order"
msgstr "Gyártási utasítás befejezése"
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr "Következő szabad sorozatszám"
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr "Legutolsó sorozatszám"
@@ -8988,9 +9105,9 @@ msgstr "Készlet tételek foglalása"
msgid "No builds matching query"
msgstr "Nincs a lekérdezéssel egyező gyártási utasítás"
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr "Kiválaszt"
@@ -9002,7 +9119,7 @@ msgstr "Gyártás késésben van"
msgid "Progress"
msgstr "Haladás"
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr "Nincs felhasználói információ"
@@ -9075,34 +9192,34 @@ msgid "No manufacturer parts found"
msgstr "Nincs gyártói alkatrész"
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr "Sablon alkatrész"
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr "Gyártmány alkatrész"
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "Nem található paraméter"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Paraméter szerkesztése"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Paraméter törlése"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Paraméter szerkesztése"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Paraméter törlése"
@@ -9182,61 +9299,61 @@ msgstr "Összes szűrő törlése"
msgid "Create filter"
msgstr "Szűrő létrehozása"
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Művelet tiltva"
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Létrehozás nem engedélyezett"
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Módosítás nem engedélyezett"
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Törlés nem engedélyezett"
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Megtekintés nem engedélyezett"
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr "Form nyitva tartása"
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Adj meg egy érvényes számot"
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Form hibák vannak"
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr "Nincs eredmény"
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Keresés"
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Bevitel törlése"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr "Fájl oszlop"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr "Mező név"
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr "Oszlopok kiválasztása"
@@ -9257,7 +9374,7 @@ msgid "Labels sent to printer"
msgstr "Címkék nyomtatónak elküldve"
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr "Készlet tételek kiválasztása"
@@ -9591,7 +9708,7 @@ msgstr "Beérkezett mennyiség"
msgid "Quantity to receive"
msgstr "Érkező mennyiség"
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr "Készlet állapota"
@@ -9615,7 +9732,7 @@ msgstr "Bevételezés megerősítése"
msgid "Receive Purchase Order Items"
msgstr "Beszerzési rendelés tételeinek bevételezése"
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr "Nem található beszerzési rendelés"
@@ -9648,8 +9765,8 @@ msgstr "Nem találhatók sortételek"
msgid "Total"
msgstr "Összesen"
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr "Teljes mennyiség"
@@ -9667,11 +9784,11 @@ msgid "Total Price"
msgstr "Teljes ár"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr "Ez a sortétel késésben van"
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr "Sortétel bevételezése"
@@ -9792,7 +9909,7 @@ msgid "Delete Stock Allocation"
msgstr "Készlet foglalások törlése"
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr "Vevőnek kiszállítva"
@@ -9836,334 +9953,358 @@ msgstr "Nincs egyező sortétel"
msgid "No matching lines"
msgstr "Nincsenek egyező sorok"
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Alkatrész tulajdonságok"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr "Alkatrész létrehozási opciók"
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr "Alkatrész másolási opciók"
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr "Beszállítói opciók"
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "Alkatrész kategória hozzáadása"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr "Kezdeti készlet létrehozása"
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr "Kezdeti készlet tétel létrehozása ehhez az alkatrészhez"
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr "Kezdeti készlet mennyiség"
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr "Add meg a kezdeti készlet mennyiségét ennek az alkatrésznek"
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr "Válassz cél készlet helyet"
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr "Kategória paraméterek másolása"
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából"
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr "Beszállító adatok hozzáadása"
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr "Kezdeti beszállítói adatok létrehozása ehhez az alkatrészhez"
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Kép másolása"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr "Kép másolása az eredeti alkatrészről"
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről"
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Paraméterek másolása"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr "Paraméterek másolása az eredeti alkatrészről"
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr "Felsőbb szintű alkatrész kategória"
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr "Ikon (opcionális) - Az összes ikon felfedezése itt"
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "Alkatrész kategória szerkesztése"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr "Biztos hogy törölni szeretnéd ezt az alkatrész kategóriát?"
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr "Áthelyezés fentebbi kategóriába"
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr "Alkatrész kategória törlése"
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr "A kategóriában lévő alkatrészek kezelése"
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr "Alkategóriák kezelése"
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "Alkatrész szerkesztése"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr "Alkatrész módosítva"
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr "Alkatrész változat létrehozása"
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr "Aktív alkatrész"
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr "Alkatrész nem törölhető mivel még aktív"
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr "Ezen alkatrész törlése nem vonható vissza"
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr "Ennek az alkatrésznek a teljes készlete törölve lesz"
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr "Ez az alkatrész minden alkatrészjegyzékből törölve lesz"
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr "Ehhez az alkatrészhez rendelt minden beszállítói és gyártói információ törölve lesz"
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr "Alkatrész törlése"
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr "Értesítések beállítva erre a tételre"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr "Értesítések beállítva erre a tételre"
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr "Értesítések kérése erre a tételre"
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr "Értesítések letiltva erre a tételre"
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr "Az alkatrészjegyzék jóváhagyása minden sortételt jóvá fog hagyni"
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr "Alkatrészjegyzék jóváhagyása"
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr "Alkatrészjegyzék jóvá lett hagyva"
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr "Alkatrészjegyzék másolása"
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr "Alacsony készlet"
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr "Nincs szabad"
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "Követésre kötelezett alkatrész"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr "Virtuális alkatrész"
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr "Értesítésre beállított alkatrész"
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr "Értékesíthető alkatrész"
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr "A készlet tétel mostanában nem volt ellenőrizve"
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr "Tétel frissítése"
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr "Tétel törlése"
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr "Nincs elérhető leltár előzmény"
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr "Leltár bejegyzés szerkesztése"
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr "Leltár bejegyzés törlése"
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Nincs több változat"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr "Alkatrész kapcsolatok törlése"
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr "Alkatrész kapcsolatok törlése"
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "Nincs alkatrész"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Nincs kategória"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr "Nincs készlet"
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr "Gyártáshoz lefoglalva"
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr "Vevő rendeléshez lefoglalva"
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Megjelenítés listaként"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Megjelenítés rácsnézetként"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr "Kategória beállítása a kiválasztott alkatrészekhez"
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "Alkatrész kategória beállítása"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr "Alkatrész kategória kiválasztása"
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr "Kategória megadása kötelező"
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Megjelenítés fában"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr "Alkategóriák betöltése"
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr "Értesítésre beállított kategória"
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr "Nincs a lekérdezéssel egyező teszt sablon"
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr "Teszt eredmény szerkesztése"
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr "Teszt eredmény törlése"
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr "Ez a teszt a szülő alkatrészhez lett felvéve"
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr "Teszt eredmény sablon szerkesztése"
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr "Teszt eredmény sablon törlése"
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr "Nincs megadva dátum"
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr "A megadott dátum a múltban van"
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr "Spekulatív"
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ"
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr "Hiba az alkatrész ütemezési információinak betöltésekor"
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr "Ütemezett készlet mennyiség"
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr "Minimum mennyiség"
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr "Minimális készlet"
@@ -10291,388 +10432,388 @@ msgstr "Eredmények összezárása"
msgid "Remove results"
msgstr "Eredmények eltávolítása"
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr "Készlet tétel sorszámozása"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr "Készlet sorozatszámozás megerősítése"
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr "Felsőbb szintű készlet hely"
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "Készlet hely szerkesztése"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr "Új készlet hely"
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "Biztosan törölni szeretnéd ezt a készlet helyet?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr "Szülő készlet helyre mozgatás"
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "Készlethely törlése"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr "Műveletek az ezen a helyen lévő tételekhez"
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr "Műveletek az al-helyekhez"
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr "Ezt az alkatrészt nem lehet sorozatszámozni"
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez"
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)"
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr "Készlet tétel lemásolva"
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr "Készlet tétel másolása"
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr "Biztosan törölni szeretnéd ezt a készlet tételt?"
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr "Készlet tétel törlése"
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr "Készlet tétel szerkesztése"
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr "Készlet tétel létrehozva"
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr "Több készlet tétel létre lett hozva"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr "Sorozatszám keresése"
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr "Sorozatszám megadása"
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr "Adj meg egy sorozatszámot"
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr "Nincs egyező sorozatszám"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr "Több egyező eredmény is van"
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr "Készlet hozzárendelés jóváhagyása"
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr "Készlet vevőhöz rendelése"
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr "Figyelem: az összevonási művelet nem vonható vissza"
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr "Némi információ elveszik a készlet összevonás során"
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr "A készlettörténet törölve lesz az összevont tételeknél"
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél"
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr "Készlet összevonás megerősítése"
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr "Készlet tételek összevonása"
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr "Készlet áthelyezése"
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr "Áthelyezés"
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr "Leltározás"
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr "Mennyiség"
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr "Készlet csökkentése"
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr "Kivesz"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr "Készlet növelése"
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "Hozzáad"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr "Készlet törlése"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr "Készlet mennyiség megadása"
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr "Ki kell választanod legalább egy rendelkezésre álló készlet tételt"
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr "Készlet módosítás jóváhagyása"
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr "SIKER"
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr "SIKERTELEN"
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr "NINCS EREDMÉNY"
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr "Teszt sikeres"
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr "Teszt eredmény hozzáadása"
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr "Nincs teszt eredmény"
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr "Teszt dátuma"
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr "Teszt eredmény szerkesztése"
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr "Teszt eredmény törlése"
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "Gyártásban"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr "Beépítve készlet tételbe"
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr "Vevő rendeléshez hozzárendelve"
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Nincs hely megadva"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr "Készlet tétel gyártás alatt"
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva"
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr "Készlet tétel teljes egészében lefoglalva"
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr "Készlet tétel részben lefoglalva"
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr "Készlet tétel beépítve egy másikba"
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr "Készlet tétel lejárt"
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr "Készlet tétel hamarosan lejár"
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr "Készlet tétel elutasítva"
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr "Készlet tétel elveszett"
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr "Készlet tétel megsemmisült"
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr "Kimerült"
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr "Beszállítói alkatrész nincs megadva"
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr "Nincs a lekérdezésnek megfelelő készlet tétel"
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr "Készlet állapot beállítása"
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr "Státuszkód kiválasztása"
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr "Státuszkódot ki kell választani"
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr "Alhelyek betöltése"
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "Részletek"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr "Alkatrész információ nem áll rendelkezésre"
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "A hely már nem létezik"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr "Beszerzési megrendelés már nem létezik"
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr "Vevő már nem létezik"
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr "A készlet tétel már nem létezik"
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr "Hozzáadva"
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr "Eltávolítva"
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr "Nincsenek beépített tételek"
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr "Készlet tétel kiszedése"
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr "Válaszd ki a kiszedni való készlet tételt"
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr "Másik tétel beépítése ebbe a készlet tételbe"
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat"
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek"
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr "A készlet tétel jelenleg elérhető készleten"
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr "A készlet tétel még nem épült be egy másik tételbe"
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal"
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr "Válaszd ki a beépítendő alkatrészt"
@@ -10697,7 +10838,7 @@ msgid "Allow Variant Stock"
msgstr "Készlet változatok engedélyezése"
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr "Van árazás"
@@ -10913,6 +11054,10 @@ msgstr "Készleten"
msgid "Purchasable"
msgstr "Beszerezhető"
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr "Volt leltár"
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Naptár nézet megjelenítése"
@@ -11207,35 +11352,35 @@ msgstr "Jogosultságok"
msgid "Important dates"
msgstr "Fontos dátumok"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Jogosultságok"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Csoport"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Nézet"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Jogosultság tételek megtekintéséhez"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Jogosultság tételek hozzáadásához"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Módosítás"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Jogosultság tételek szerkesztéséhez"
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr "Jogosultság tételek törléséhez"
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 590d9b9f7d..99cc171228 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -34,7 +34,7 @@ msgstr "Masukkan tanggal"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Masukkan tanggal"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Catatan"
@@ -204,18 +204,18 @@ msgstr "Lampiran"
msgid "Select file to attach"
msgstr "Pilih file untuk dilampirkan"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Tautan"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Tautan menuju URL eksternal"
@@ -229,12 +229,13 @@ msgstr "Komentar"
msgid "File comment"
msgstr "Komentar file"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Pengguna"
@@ -271,19 +272,20 @@ msgstr "Kesalahan merubah nama file"
msgid "Invalid choice"
msgstr "Pilihan tidak valid"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Nama"
@@ -292,24 +294,25 @@ msgstr "Nama"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Keterangan"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "induk"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Direktori"
@@ -354,7 +357,7 @@ msgstr "Terjadi Kesalahan Server"
msgid "An error has been logged by the server."
msgstr "Sebuah kesalahan telah dicatat oleh server."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Harus berupa angka yang valid"
@@ -421,107 +424,107 @@ msgstr "URL file gambar external"
msgid "Downloading images from remote URL is not enabled"
msgstr "Unduhan gambar dari URL external tidak aktif"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Ceko"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Denmark"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Jerman"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Yunani"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Inggris"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spanyol (Meksiko)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Persia"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Perancis"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Ibrani"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Hungaria"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Itali"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Jepang"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Korea"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Belanda"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norwegia"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polandia"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugis"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugis (Brasil)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Rusia"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Swedia"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thai"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turki"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnam"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Cina"
@@ -652,7 +655,7 @@ msgstr "Dipisah dari item induk"
msgid "Split child item"
msgstr "Pisah item dari barang induk"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Stok item digabungkan"
@@ -756,7 +759,7 @@ msgstr "Order Produksi"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Order Produksi"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Referensi Order Produksi"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Produksi induk dari produksi ini"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Produksi induk dari produksi ini"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Bagian"
@@ -890,7 +896,7 @@ msgstr "Kode Kelompok"
msgid "Batch code for this build output"
msgstr "Kode kelompok untuk hasil produksi ini"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Tanggal Pembuatan"
@@ -923,7 +929,7 @@ msgstr "Pengguna yang menyerahkan order ini"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Pengguna yang bertanggung jawab atas order ini"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Tautan eksternal"
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Stok Item"
@@ -1022,12 +1028,13 @@ msgstr "Sumber stok item"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Sumber stok item"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Jumlah"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Masukkan jumlah hasil pesanan"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Jumlah harus lebih besar daripada nol"
@@ -1113,7 +1121,7 @@ msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Nomor Seri"
@@ -1146,9 +1154,10 @@ msgstr "Daftar hasil pesanan harus disediakan"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Lokasi"
@@ -1162,8 +1171,8 @@ msgstr "Lokasi hasil pesanan yang selesai"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Status"
@@ -1239,8 +1248,8 @@ msgstr "Jumlah produksi yang diperlukan masih belum cukup"
msgid "Build order has incomplete outputs"
msgstr "Order memiliki hasil produksi yang belum dilengkapi"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Item tagihan material"
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Konfirmasi"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 c656bb574f..3c7469a2ba 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -34,7 +34,7 @@ msgstr "Inserisci la data"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Inserisci la data"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Note"
@@ -204,18 +204,18 @@ msgstr "Allegato"
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Collegamento"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link a URL esterno"
@@ -229,12 +229,13 @@ msgstr "Commento"
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Utente"
@@ -271,19 +272,20 @@ msgstr "Errore nella rinominazione del file"
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Nome"
@@ -292,24 +294,25 @@ msgstr "Nome"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Descrizione"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "genitore"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Percorso"
@@ -354,7 +357,7 @@ msgstr "Errore del server"
msgid "An error has been logged by the server."
msgstr "Un errore è stato loggato dal server."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Ceco"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Persiano"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Ungherese"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portoghese"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portoghese (Brasile)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Cinese"
@@ -652,7 +655,7 @@ msgstr "Diviso dall'elemento genitore"
msgid "Split child item"
msgstr "Dividi elemento figlio"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Elemento stock raggruppato"
@@ -756,7 +759,7 @@ msgstr "Ordine di Produzione"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Ordini di Produzione"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Articolo"
@@ -890,7 +896,7 @@ msgstr "Codice Lotto"
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Data di creazione"
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Collegamento esterno"
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Articoli in magazzino"
@@ -1022,12 +1028,13 @@ msgstr "Origine giacenza articolo"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Origine giacenza articolo"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Quantità"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Codice Seriale"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Posizione"
@@ -1162,8 +1171,8 @@ msgstr "Posizione per gli output di build completati"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Stato"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Distinta base (Bom)"
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Data scadenza"
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Allegati"
@@ -1635,7 +1644,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:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr "Copia Template Parametri Categoria"
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Assemblaggio"
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:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Componente"
@@ -1958,7 +1967,7 @@ msgstr "Componente"
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:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Acquistabile"
@@ -1966,7 +1975,7 @@ msgstr "Acquistabile"
msgid "Parts are purchaseable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Vendibile"
@@ -1975,10 +1984,10 @@ msgstr "Vendibile"
msgid "Parts are salable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Tracciabile"
@@ -1986,10 +1995,10 @@ msgstr "Tracciabile"
msgid "Parts are trackable by default"
msgstr "Gli articoli sono tracciabili per impostazione predefinita"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtuale"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr "Attivo"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "Token"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Carica file"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Abbina Campi"
@@ -2934,7 +2954,9 @@ msgstr "Articoli importati"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Punto di contatto"
msgid "Link to external company information"
msgstr "Collegamento alle informazioni aziendali esterne"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Immagine"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Valuta"
@@ -3055,12 +3077,12 @@ msgstr "Seleziona articolo"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Produttore"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Seleziona Produttore"
@@ -3070,11 +3092,11 @@ msgstr "Seleziona Produttore"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Codice articolo produttore"
@@ -3100,8 +3122,8 @@ msgstr "Nome parametro"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Valore"
@@ -3109,10 +3131,10 @@ msgstr "Valore"
msgid "Parameter value"
msgstr "Valore del parametro"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Unità"
@@ -3132,24 +3154,24 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Fornitore"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Seleziona fornitore"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Nota"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "costo base"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Confezionamento"
@@ -3196,7 +3219,7 @@ msgstr "Imballaggio del pezzo"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "multiplo"
@@ -3216,8 +3239,8 @@ msgstr "Ordine multiplo"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Disponibile"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Cliente"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Telefono"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr "Rimuovi"
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Carica immagine"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Download Immagine"
@@ -3351,7 +3374,7 @@ msgstr "Crea nuovo fornitore"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Nuovo fornitore articolo"
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Produttori"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Articoli ordinati"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Fornitori"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Elimina articolo fornitore"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Elimina"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parametri"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Elimina il parametro"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Aggiungi parametro"
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Ordine Articolo"
@@ -3630,7 +3653,7 @@ msgstr "Crea nuova allocazione magazzino"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Nuovo Elemento in giacenza"
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Magazzino"
@@ -3680,7 +3703,7 @@ msgstr "Prezzo articolo del fornitore"
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Prezzi"
@@ -3692,7 +3715,7 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Articoli in magazzino"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr "Articolo Fornitore"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "Elimina colonna"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr "Duplica selezionati"
@@ -4389,12 +4418,13 @@ msgstr "Duplica selezionati"
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Elimina riga"
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Codice Articolo"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Revisione"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Parole Chiave"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "Id Categoria"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Scorta Minima"
@@ -4625,8 +4656,8 @@ msgstr "In magazzino"
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "Ordinato"
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "Percorso Categoria"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Articoli"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr "Specifica la posizione per lo stock iniziale"
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Posizione Predefinita"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
@@ -4812,423 +4843,459 @@ msgstr "Categoria Articoli"
msgid "Part Categories"
msgstr "Categorie Articolo"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr "Scelta non valida per l'articolo principale"
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Nome articolo"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "È Template"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "Quest'articolo è un articolo di template?"
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr "Questa parte è una variante di un altro articolo?"
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Variante Di"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Descrizione articolo"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Categoria"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr "Numero Dell'articolo Interno"
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr "Dove viene normalmente immagazzinato questo articolo?"
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr "Fornitore predefinito"
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr "Articolo fornitore predefinito"
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr "Scadenza Predefinita"
-#: part/models.py:939
+#: part/models.py:940
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:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr "Livello minimo di giacenza consentito"
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr "Unità di conservazione delle scorte per quest'articolo"
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "Questo pezzo può essere venduto ai clienti?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "Quest'articolo è attivo?"
-#: part/models.py:990
+#: part/models.py:991
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:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr "Ultimo Inventario"
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr "Data"
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr "Crea nuovo articolo"
msgid "New Part"
msgstr "Nuovo articolo"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Opzioni"
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr "Aggiorna"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr "Inventario"
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr "Assegnazione Ordine Di Vendita"
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "Distinta base"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Fornitori articoli"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Componenti Produttori"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr "Formato"
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr "Inattivo"
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr "Data"
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr "Ultimo aggiornamento"
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "Nessuna giacenza"
@@ -6087,27 +6183,32 @@ msgstr "Database sconosciuto"
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr "Seriale"
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr "Inventario"
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr "Ultimo Inventario"
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr "Nessun inventario eseguito"
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "Impostazioni articolo"
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr "Nessun parametro di categoria trovato"
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
+#: templates/InvenTree/settings/settings.html:237
+#: templates/InvenTree/settings/settings.html:362
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:237
-#: templates/InvenTree/settings/settings.html:362
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr "Crea Template Parametro Categoria"
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr "Elimina Modello Parametro Categoria"
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr "Impostazioni di ricerca"
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr "Conferma l'indirizzo e-mail"
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Conferma"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr "Quantità minima"
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr "Chiudi"
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr "Formato"
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Elimina il parametro"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Elimina Parametri"
@@ -9181,61 +9298,61 @@ msgstr "Cancella tutti i filtri"
msgid "Create filter"
msgstr "Crea filtro"
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Azione Vietata"
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Crea operazione non consentita"
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Operazione di aggiornamento non consentita"
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Operazione di eliminazione non consentita"
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Mostra operazione non consentita"
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Inserisci un numero valido"
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr "Nessun risultato trovato"
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Ricerca"
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Cancella input"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr "Stato giacenza"
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr "Totale"
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr "Prezzo Totale"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr "Elimina posizione giacenza"
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr "Spedito al cliente"
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Attributi Articolo"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr "Opzioni Fornitore"
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "Aggiungi Categoria Articolo"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr "Crea giacenza iniziale"
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr "Crea una giacenza iniziale per quest'articolo"
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr "Quantità iniziale"
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr "Selezione la posizione di destinazione della giacenza"
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr "Copia Parametri Categoria"
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr "Aggiungi Dati Fornitore"
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Copia immagine"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr "Copia immagine dall'articolo originale"
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Copia parametri"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr "Categoria articolo principale"
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "Modifica Categoria Articoli"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr "Elimina categoria"
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "Modifica l'articolo"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr "Articolo modificato"
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr "Convalida la distinta dei materiali"
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr "In esaurimento"
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "Parte tracciabile"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr "Parte virtuale"
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr "Parte sottoscritta"
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr "Parte vendibile"
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Nessuna variante trovata"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr "Elimina relazione tra i componenti"
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "Nessun articolo trovato"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Nessuna categoria"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Visualizza come elenco"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Visualizza come griglia"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "Imposta categoria articolo"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Visualizza come struttura ad albero"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr "Categoria sottoscritta"
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr "Nessun modello di test corrispondente"
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr "Modificare il risultato del test"
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr "Cancellare il risultato del test"
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr "Posizione giacenza principale"
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "Modifica Posizione Giacenza"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr "Nuova posizione giacenza"
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "Sei sicuro di voler eliminare questa posizione?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "Elimina Posizione di Giacenza"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
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:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr "Crea nuova allocazione magazzino"
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr "Creato più elementi stock"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr "Trasferisci giacenza"
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr "Sposta"
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr "Conta giacenza"
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr "Conta"
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr "Rimuovi giacenza"
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr "Prendi"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "Aggiungi"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr "Elimina Stock"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr "Specificare la quantità di magazzino"
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr "Devi selezionare almeno un articolo disponibile"
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr "NESSUN RISULTATO"
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr "Aggiungi risultato test"
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr "Nessun risultato di prova trovato"
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "In produzione"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr "Installato nell'elemento stock"
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr "Assegnato all'ordine di vendita"
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr "Esaurito"
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr "Aggiunto"
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr "Rimosso"
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr "Acquistabile"
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Visualizzazione calendario"
@@ -11206,35 +11351,35 @@ msgstr "Permessi"
msgid "Important dates"
msgstr "Date Importanti"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Impostazione autorizzazioni"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Gruppo"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Visualizza"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Autorizzazione a visualizzare gli articoli"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Modificare"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Permessi per modificare gli elementi"
-#: users/models.py:224
+#: users/models.py:225
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 03bf1c8e5b..eead707458 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -34,7 +34,7 @@ msgstr "日付を入力する"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "日付を入力する"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "メモ"
@@ -204,18 +204,18 @@ msgstr "添付ファイル"
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "リンク"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "外部 サイト へのリンク"
@@ -229,12 +229,13 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "ユーザー"
@@ -271,19 +272,20 @@ msgstr "ファイル名の変更に失敗しました"
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "お名前"
@@ -292,24 +294,25 @@ msgstr "お名前"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "説明"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "親"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "ギリシャ語"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "スペイン語"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "スペイン語(メキシコ)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "ヘブライ語"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "ハンガリー語"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "イタリア語"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "日本語"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "韓国語"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "オランダ語"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "ノルウェー語"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "ロシア語"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "スウェーデン語"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "タイ語"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "ベトナム語"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "中国語"
@@ -652,7 +655,7 @@ msgstr "親アイテムから分割する"
msgid "Split child item"
msgstr "子項目を分割"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "商品在庫をマージしました"
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "パーツ"
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "作成日時"
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr "パーツを割り当てるためにビルドする"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "在庫商品"
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "数量"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "ステータス"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "テンプレート"
@@ -1938,7 +1947,7 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "アセンブリ"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "コンポーネント"
@@ -1958,7 +1967,7 @@ msgstr "コンポーネント"
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "購入可能"
@@ -1966,7 +1975,7 @@ msgstr "購入可能"
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "追跡可能"
@@ -1986,10 +1995,10 @@ msgstr "追跡可能"
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "メッセージ ID:"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr "新しいサプライヤー・パーツを作成"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
@@ -3380,7 +3403,7 @@ msgstr "メーカー・パーツ"
msgid "Create new manufacturer part"
msgstr "新しいメーカー・パーツを作成"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "新しいメーカ―・パーツ"
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "パーツの注文"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "購入金額"
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "パーツ"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "カテゴリ"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr "新規パーツ"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "在庫切れ"
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "確認"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 7bbedc9928..0711af13a4 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -34,7 +34,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -204,18 +204,18 @@ msgstr "첨부파일"
msgid "Select file to attach"
msgstr "첨부할 파일을 선택하세요"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "링크"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "외부 URL로 링크"
@@ -229,12 +229,13 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "사용자"
@@ -271,19 +272,20 @@ msgstr "파일 이름 바꾸기 오류"
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "이름"
@@ -292,24 +294,25 @@ msgstr "이름"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "설명"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "유효한 숫자여야 합니다"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "체코어"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "독일어"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "그리스어"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "영어"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "스페인어"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "스페인어 (멕시코)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "파르시어/페르시아어"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "프랑스어"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "히브리어"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "헝가리어"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "이탈리아어"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "일본어"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "한국어"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "네덜란드어"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "노르웨이어"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "폴란드어"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "러시아어"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "스웨덴어"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "태국어"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "터키어"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "베트남어"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "중국어"
@@ -652,7 +655,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "외부 링크"
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "수량"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "수량 값은 0보다 커야 합니다"
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "일련번호"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "위치"
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "상태"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "구입 가능"
@@ -1966,7 +1975,7 @@ msgstr "구입 가능"
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "판매 가능"
@@ -1975,10 +1984,10 @@ msgstr "판매 가능"
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr "작성자"
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "파일 업로드"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "이미지"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "고객"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "전화번호"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "이미지 업로드"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "이미지 다운로드"
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "삭제"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr "데이터"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "부품 명세서"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "일련번호 검색"
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "일련번호"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr "새 탭에서 열기"
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr "선택한 이메일 주소를 정말로 제거하시겠습니까?"
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr "테마 설정"
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr "테마 선택"
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "확인"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr "선택"
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "이미지 복사"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr "부품 명세서 복사"
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr "일련번호 찾기"
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr "일련번호를 입력하세요"
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr "일련번호를 입력하세요"
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr "일치하는 일련번호가 없습니다"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 7b6ac17227..33e631ee1b 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -34,7 +34,7 @@ msgstr "Voer datum in"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Voer datum in"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Opmerkingen"
@@ -204,18 +204,18 @@ msgstr "Bijlage"
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link naar externe URL"
@@ -229,12 +229,13 @@ msgstr "Opmerking"
msgid "File comment"
msgstr "Bestand opmerking"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Gebruiker"
@@ -271,19 +272,20 @@ msgstr "Fout bij hernoemen bestand"
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Naam"
@@ -292,24 +294,25 @@ msgstr "Naam"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Omschrijving"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "bovenliggende"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Pad"
@@ -354,7 +357,7 @@ msgstr "Serverfout"
msgid "An error has been logged by the server."
msgstr "Er is een fout gelogd door de server."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -421,107 +424,107 @@ msgstr "URL van extern afbeeldingsbestand"
msgid "Downloading images from remote URL is not enabled"
msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tsjechisch"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Perzisch"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Hongaars"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugees"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugees (Braziliaans)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Chinees"
@@ -652,7 +655,7 @@ msgstr "Splits van bovenliggend item"
msgid "Split child item"
msgstr "Splits onderliggende item"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Samengevoegde voorraadartikelen"
@@ -756,7 +759,7 @@ msgstr "Productieorder"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Productieorders"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Productieorderreferentie"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Productieorder waar deze productie aan is toegewezen"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Onderdeel"
@@ -890,7 +896,7 @@ msgstr "Batchcode"
msgid "Batch code for this build output"
msgstr "Batchcode voor deze productieuitvoer"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Aanmaakdatum"
@@ -923,7 +929,7 @@ msgstr "Gebruiker die de productieorder heeft gegeven"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Gebruiker verantwoordelijk voor deze productieorder"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Externe Link"
@@ -1011,8 +1017,8 @@ msgstr "Product om onderdelen toe te wijzen"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Voorraadartikel"
@@ -1022,12 +1028,13 @@ msgstr "Bron voorraadartikel"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Bron voorraadartikel"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Hoeveelheid"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor productie uitvoer"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
@@ -1113,7 +1121,7 @@ msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat"
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -1146,9 +1154,10 @@ msgstr "Een lijst van productieuitvoeren moet worden verstrekt"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Locatie"
@@ -1162,8 +1171,8 @@ msgstr "Locatie van voltooide productieuitvoeren"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Status"
@@ -1239,8 +1248,8 @@ msgstr "Vereiste productiehoeveelheid is voltooid"
msgid "Build order has incomplete outputs"
msgstr "Productieorder heeft onvolledige uitvoeren"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Stuklijstartikel"
@@ -1406,7 +1415,7 @@ msgstr "Voorraad is niet volledig toegewezen aan deze productieorder"
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Streefdatum"
@@ -1484,8 +1493,8 @@ msgstr "Toegewezen Onderdelen"
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr "Voltooide Productieuitvoeren"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Bijlagen"
@@ -1635,7 +1644,7 @@ msgstr "Toewijzing Voltooid"
msgid "All untracked stock items have been allocated"
msgstr "Alle niet gevolgde voorraadartikelen zijn toegewezen"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Nieuwe Productieorder"
@@ -1928,9 +1937,9 @@ msgstr "Kopiëer Categorieparameter Sjablonen"
msgid "Copy category parameter templates when creating a part"
msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Sjabloon"
@@ -1938,7 +1947,7 @@ msgstr "Sjabloon"
msgid "Parts are templates by default"
msgstr "Onderdelen zijn standaard sjablonen"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Samenstelling"
msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Component"
@@ -1958,7 +1967,7 @@ msgstr "Component"
msgid "Parts can be used as sub-components by default"
msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Koopbaar"
@@ -1966,7 +1975,7 @@ msgstr "Koopbaar"
msgid "Parts are purchaseable by default"
msgstr "Onderdelen kunnen standaard gekocht worden"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Verkoopbaar"
@@ -1975,10 +1984,10 @@ msgstr "Verkoopbaar"
msgid "Parts are salable by default"
msgstr "Onderdelen kunnen standaard verkocht worden"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Volgbaar"
@@ -1986,10 +1995,10 @@ msgstr "Volgbaar"
msgid "Parts are trackable by default"
msgstr "Onderdelen kunnen standaard gevolgd worden"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtueel"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Prijs"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr "Actief"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "Token"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr "Token voor toegang"
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Geheim"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "Bericht ID"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr "Host"
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Koptekst"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "Koptekst van dit bericht"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Berichtinhoud"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr "Inhoud van dit bericht"
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr "Een nieuwe order is aangemaakt en aan u toegewezen"
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr "Artikelen zijn ontvangen tegen een inkooporder"
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Upload Bestand"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Vergelijk Velden"
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Contactpunt"
msgid "Link to external company information"
msgstr "Link naar externe bedrijfsinformatie"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Afbeelding"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Fabriceert dit bedrijf onderdelen?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Valuta"
@@ -3055,12 +3077,12 @@ msgstr "Onderdeel selecteren"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Fabrikant"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Fabrikant selecteren"
@@ -3070,11 +3092,11 @@ msgstr "Fabrikant selecteren"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr "MPN"
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Fabrikant artikel nummer (MPN)"
@@ -3100,8 +3122,8 @@ msgstr "Parameternaam"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Waarde"
@@ -3109,10 +3131,10 @@ msgstr "Waarde"
msgid "Parameter value"
msgstr "Parameterwaarde"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Eenheden"
@@ -3132,24 +3154,24 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Leverancier"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Leverancier selecteren"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr "SKU"
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Opmerking"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "basisprijs"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "meerdere"
@@ -3216,8 +3239,8 @@ msgstr "Order meerdere"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Beschikbaar"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Klant"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Telefoon"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Afbeelding Uploaden"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Afbeelding Downloaden"
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr "Fabrikant onderdelen"
msgid "Create new manufacturer part"
msgstr "Maak nieuw fabrikant onderdeel"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Nieuw fabrikant onderdeel"
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ msgstr "Nieuwe Inkooporder"
#: 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Fabrikanten"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Order onderdeel"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Leveranciers"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Verwijder leveranciersonderdelen"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Verwijderen"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parameters"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Parameter verwijderen"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Parameter toevoegen"
@@ -3538,7 +3561,7 @@ msgstr "Toegewezen Voorraadartikelen"
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Leveranciersonderdeel"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Order Onderdeel"
@@ -3630,7 +3653,7 @@ msgstr "Nieuw voorraadartikel aanmaken"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Nieuw Voorraadartikel"
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Voorraad"
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Prijzen"
@@ -3692,7 +3715,7 @@ msgstr "Prijzen"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Voorraadartikelen"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Inkooporder"
@@ -3973,7 +3996,7 @@ msgstr "Leveranciersonderdeel"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr "Ontvangen"
@@ -3984,7 +4007,7 @@ msgstr "Aantal ontvangen artikelen"
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Inkoopprijs"
@@ -4350,18 +4373,21 @@ msgstr "Totale kosten konden niet worden berekend"
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr "Dien Selecties In"
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Rij verwijderen"
@@ -4429,6 +4459,7 @@ msgstr "Order is al verwerkt. Bestanden kunnen niet meer worden geüpload."
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr "{part} stukprijs bijgewerkt naar {price}"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}"
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "In bestelling"
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr "Toegewezen"
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr "Binnenkomende Inkooporder"
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr "Uitgaande Verkooporder"
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr "Geproduceerde voorraad door Productieorder"
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr "Voorraad vereist voor Productieorder"
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Standaard locatie"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr "Datum"
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr "De template van de parameter moet uniek zijn"
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr "Parameternaam"
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr "Parameter Eenheden"
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "Parameter Template"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr "Parameterwaarde"
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr "Standaard Parameter Waarde"
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr "Ongeldige hoeveelheid"
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr "Verkoopordertoewijzingen"
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr "Een parameter toevoegen"
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr "Assemblages"
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr "Productieordertoewijzingen"
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Onderdeelfabrikanten"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr "Fabrikantonderdeel verwijderen"
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr "Formaat"
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr "Selecteer bestandsindeling"
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr "Geen overeenkomende afbeeldingen gevonden"
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr "Datum"
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr "Selecteer afbeelding onderdeel"
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr "Afbeelding onderdeel bijgewerkt"
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "Afbeelding van onderdeel niet gevonden"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr "Vereist Voor"
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Serienummer"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr "Taalinstellingen"
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr "Taal selecteren"
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr "Taal instellen"
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr "Een aantal talen zijn nog niet compleet"
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bevestigen"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr "Sluit"
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr "Formaat"
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr "Selecteer bestandsindeling"
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr "Productieorder is onvolledig"
msgid "Complete Build Order"
msgstr "Voltooi Productieoorder"
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr "Productieorder is achterstallig"
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr "Geen fabrikantenonderdelen gevonden"
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr "Samengesteld onderdeel"
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "Geen parameters gevonden"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Parameter bewerken"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Parameter verwijderen"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Parameter bewerken"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Parameter verwijderen"
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr "Ontvang Artikelen Inkooporder"
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr "Geen inkooporder gevonden"
@@ -9647,8 +9764,8 @@ msgstr "Geen artikelen gevonden"
msgid "Total"
msgstr "Totaal"
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr "Totaalprijs"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr "Dit artikel is achterstallig"
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr "Artikel ontvangen"
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr "Verwijder Voorraadtoewijzing"
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr "Verzonden aan klant"
@@ -9835,334 +9952,358 @@ msgstr "Geen overeenkomende artikelen"
msgid "No matching lines"
msgstr "Geen overeenkomende regels"
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Afbeelding kopiëren"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel"
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Parameters kopiëren"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr "Parameter data kopiëren van het originele onderdeel"
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr "Validatie van de BOM markeert ieder artikel als geldig"
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "Bewerk Voorraadlocatie"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "Verwijder Voorraadlocatie"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr "Toegewezen aan Verkooporder"
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr "Voorraadartikel toegewezen aan verkooporder"
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr "Inkooporder bestaat niet meer"
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Toon Kalenderweergave"
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 a077acaec9..a1251015be 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -34,7 +34,7 @@ msgstr "Oppgi dato"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Oppgi dato"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Notater"
@@ -204,18 +204,18 @@ msgstr "Vedlegg"
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Lenke"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Lenke til ekstern URL"
@@ -229,12 +229,13 @@ msgstr "Kommenter"
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Bruker"
@@ -271,19 +272,20 @@ msgstr "Feil ved endring av navn"
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Navn"
@@ -292,24 +294,25 @@ msgstr "Navn"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Beskrivelse"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "overkategori"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Sti"
@@ -354,7 +357,7 @@ msgstr "Serverfeil"
msgid "An error has been logged by the server."
msgstr "En feil har blitt logget av serveren."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
@@ -421,107 +424,107 @@ msgstr "URL-adressen til ekstern bildefil"
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tsjekkisk"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Dansk"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spansk (Meksikansk)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Persisk"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Ungarsk"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugisisk"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugisisk (Brasilian)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Kinesisk"
@@ -652,7 +655,7 @@ msgstr "Delt fra overordnet element"
msgid "Split child item"
msgstr "Delt fra underelement"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Sammenslått lagervare"
@@ -756,7 +759,7 @@ msgstr "Build ordre"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Build Ordre"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Bygg ordrereferanse"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Build order som denne build er tildelt til"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Build order som denne build er tildelt til"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Del"
@@ -890,7 +896,7 @@ msgstr "Batch kode"
msgid "Batch code for this build output"
msgstr "Batch kode for denne build output"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Opprettelsesdato"
@@ -923,7 +929,7 @@ msgstr "Brukeren som utstede denne prosjekt order"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Bruker ansvarlig for denne prosjekt order"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Ekstern link"
@@ -1011,8 +1017,8 @@ msgstr "Bygge for å tildele deler"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Lagervare"
@@ -1022,12 +1028,13 @@ msgstr "Kilde lagervare"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Kilde lagervare"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Antall"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Angi antall for build utgang"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
@@ -1113,7 +1121,7 @@ msgstr "Heltallsverdi kreves, materialene inneholder sporbare deler"
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -1146,9 +1154,10 @@ msgstr "En liste over byggeresultater må oppgis"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Beliggenhet"
@@ -1162,8 +1171,8 @@ msgstr "Sted for ferdige byggeresultater"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Status"
@@ -1239,8 +1248,8 @@ msgstr "Antall nødvendige bygg er ikke fullført"
msgid "Build order has incomplete outputs"
msgstr "Bestillingen har ufullstendige resultater"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "BOM varer"
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Måldato"
@@ -1484,8 +1493,8 @@ msgstr "Tildelte deler"
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr "Fullførte byggeresultater"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Vedlegg"
@@ -1635,7 +1644,7 @@ msgstr "Tildeling fullført"
msgid "All untracked stock items have been allocated"
msgstr "Alle usporbar lagervarer har tildelt"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Ny byggeordre"
@@ -1928,9 +1937,9 @@ msgstr "Kopier designmaler for kategoriparametere"
msgid "Copy category parameter templates when creating a part"
msgstr "Kopier kategori parametermaler ved oppretting av en del"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Mal"
@@ -1938,7 +1947,7 @@ msgstr "Mal"
msgid "Parts are templates by default"
msgstr "Deler er maler som standard"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Montering"
msgid "Parts can be assembled from other components by default"
msgstr "Deler kan settes sammen fra andre komponenter som standard"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Komponent"
@@ -1958,7 +1967,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr "Deler kan bli brukt som underkomponenter som standard"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Kjøpbar"
@@ -1966,7 +1975,7 @@ msgstr "Kjøpbar"
msgid "Parts are purchaseable by default"
msgstr "Deler er kjøpbare som standard"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Salgbar"
@@ -1975,10 +1984,10 @@ msgstr "Salgbar"
msgid "Parts are salable by default"
msgstr "Deler er salgbare som standard"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Sporbar"
@@ -1986,10 +1995,10 @@ msgstr "Sporbar"
msgid "Parts are trackable by default"
msgstr "Deler er sporbare som standard"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtuelle"
@@ -2417,7 +2426,7 @@ msgstr "Aktiver hendelsesintegrering"
msgid "Enable plugins to respond to internal events"
msgstr "Aktiver plugins til å svare på interne hendelser"
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver"
@@ -2749,41 +2758,50 @@ msgstr "Del planlegging"
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr "Aktiv"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "Sjetong"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr "Nøkkel for tilgang"
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Hemmelig"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr "Delt hemmlighet for HMAC"
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "Melding ID"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr "Unik Id for denne meldingen"
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr "Vert"
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Tittel"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "Overskrift for denne meldingen"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Brødtekst"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr "Arbeidet med"
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr "Var arbeidet med denne meldingen ferdig?"
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Last opp fil"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Sammelign felter"
@@ -2934,7 +2954,9 @@ msgstr "Deler importert"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr "Link til ekstern bedriftsinformasjon"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Bilde"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Produserer dette firmaet deler?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Valuta"
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Produsentens varenummer"
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Kunde"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Telefon"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Last opp bilde"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr "Oprett ny leverandørdel"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Ny leverandørdel"
@@ -3380,7 +3403,7 @@ msgstr "Produsentdeler"
msgid "Create new manufacturer part"
msgstr "Opprett ny produsentdeler"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Ny produsentdel"
@@ -3394,9 +3417,9 @@ msgstr "Leverandør lager"
#: 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ msgstr "Ny bestillingsorder"
#: 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Produsenter"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Bestill del"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Leverandører"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Slett leverandørdeler"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Slett"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr "Tildelt lagervarer"
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Leverandør deler"
@@ -3578,7 +3601,7 @@ msgstr "Handlinger for leverandørdeler"
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Bestill del"
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr "Oppdater tilgjengelighet"
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Valgmuligheter"
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bekreft"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Vis kalender"
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 e2fccc058c..f4eb47d4bc 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -34,7 +34,7 @@ msgstr "Wprowadź dane"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Wprowadź dane"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Uwagi"
@@ -204,18 +204,18 @@ msgstr "Załącznik"
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Łącze"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
@@ -229,12 +229,13 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Użytkownik"
@@ -271,19 +272,20 @@ msgstr "Błąd zmiany nazwy pliku"
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Nazwa"
@@ -292,24 +294,25 @@ msgstr "Nazwa"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Opis"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "nadrzędny"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Ścieżka"
@@ -354,7 +357,7 @@ msgstr "Błąd serwera"
msgid "An error has been logged by the server."
msgstr "Błąd został zapisany w logach serwera."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Czeski"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Perski"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Węgierski"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugalski"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugalski (Brazylijski)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Chiński"
@@ -652,7 +655,7 @@ msgstr "Podziel z pozycji nadrzędnej"
msgid "Split child item"
msgstr "Podziel element podrzędny"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Scalone przedmioty magazynowe"
@@ -756,7 +759,7 @@ msgstr "Zlecenie Budowy"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Zlecenia budowy"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Komponent"
@@ -890,7 +896,7 @@ msgstr "Kod partii"
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Data utworzenia"
@@ -923,7 +929,7 @@ msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Link Zewnętrzny"
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Element magazynowy"
@@ -1022,12 +1028,13 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Ilość"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Lokalizacja"
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Status"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "Element BOM"
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Data docelowa"
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Załączniki"
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Nowe zlecenie budowy"
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Szablon"
@@ -1938,7 +1947,7 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Złożenie"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Komponent"
@@ -1958,7 +1967,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Możliwość zakupu"
@@ -1966,7 +1975,7 @@ msgstr "Możliwość zakupu"
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1975,10 +1984,10 @@ msgstr "Możliwość sprzedaży"
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Możliwość śledzenia"
@@ -1986,10 +1995,10 @@ msgstr "Możliwość śledzenia"
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Wirtualny"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter"
@@ -2749,41 +2758,50 @@ msgstr "Planowanie komponentów"
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Cena"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr "Punkt końcowy"
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr "Aktywny"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr "Sekret"
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr "Współdzielony sekret dla HMAC"
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr "Id wiadomości"
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr "Unikalny identyfikator dla tej wiadomości"
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr "Host, od którego otrzymano tę wiadomość"
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr "Nagłówek"
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr "Nagłówek tej wiadomości"
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr "Zawartość"
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr "Autor"
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Punkt kontaktowy"
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Obraz"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Waluta"
@@ -3055,12 +3077,12 @@ msgstr "Wybierz część"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Wybierz producenta"
@@ -3070,11 +3092,11 @@ msgstr "Wybierz producenta"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Numer producenta komponentu"
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Wartość"
@@ -3109,10 +3131,10 @@ msgstr "Wartość"
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Jednostki"
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Wybierz dostawcę"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Opakowanie"
@@ -3196,7 +3219,7 @@ msgstr "Opakowanie części"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "wielokrotność"
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Dostępne"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Klient"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Telefon"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Załaduj obrazek"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Pobierz obraz"
@@ -3351,7 +3374,7 @@ msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Nowy dostawca części"
@@ -3380,7 +3403,7 @@ msgstr "Części producenta"
msgid "Create new manufacturer part"
msgstr "Utwórz nową część producenta"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Nowa część producenta"
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ msgstr "Nowe zamówienie zakupu"
#: 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Producenci"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Zamów komponent"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Dostawcy"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Usuń"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parametry"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Usuń parametry"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Dodaj parametr"
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "Zamów komponent"
@@ -3630,7 +3653,7 @@ msgstr "Utwórz nowy towar"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Nowy towar"
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Stan"
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Cennik"
@@ -3692,7 +3715,7 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Towary"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr "Odebrane"
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "Usuń kolumnę"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr "Duplikuj wybrane"
@@ -4389,12 +4418,13 @@ msgstr "Duplikuj wybrane"
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Usuń wiersz"
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "ID komponentu"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr "Nazwa komponentu"
@@ -4580,32 +4611,32 @@ msgstr "Nazwa komponentu"
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Wersja"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "ID kategorii"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
@@ -4625,8 +4656,8 @@ msgstr "Na stanie"
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr "W Zamówieniu"
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr "Przydzielono"
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "Ścieżka kategorii"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Części"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr "IPN komponentu"
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr "Ważny"
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr "Ta opcja musi być zaznaczona"
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr "Musi być większe niż zero"
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr "Musi być prawidłową ilością"
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr "To pole jest wymagane"
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Kategoria komponentu"
@@ -4812,423 +4843,459 @@ msgstr "Kategoria komponentu"
msgid "Part Categories"
msgstr "Kategorie części"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr "Nieprawidłowy wybór dla części nadrzędnej"
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Część '{p1}' jest używana w BOM dla '{p2}' (rekursywne)"
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Nazwa komponentu"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "Czy szablon"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "Czy ta część stanowi szablon części?"
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr "Czy ta część jest wariantem innej części?"
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Opis komponentu"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr "Domyślne wygasanie"
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr "Czy ten komponent może być zbudowany z innych komponentów?"
-#: part/models.py:964
+#: part/models.py:965
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:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?"
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?"
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr "Tworzenie użytkownika"
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr "Ostatnia inwentaryzacja"
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr "Data"
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr "Testowy opis"
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr "Wprowadź opis do tego testu"
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr "Wymaga wartości"
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr "Wymaga załącznika"
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr "Dane"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr "Wartość parametru"
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr "Unikalny wartość ID komponentu"
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr "Wartość IPN części"
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr "Poziom"
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr "Opcjonalne"
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr "Ten element BOM jest opcjonalny"
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr "Notatki pozycji BOM"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr "Dziedziczone"
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr "Część zastępcza"
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr "Waluta zakupu tego towaru"
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr "Usuń istniejące dane"
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr "Pomiń nieprawidłowe wiersze"
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr "Wyczyść istniejący BOM"
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr "Nie podano ilości"
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr "Nieprawidłowa ilość"
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr "Utwórz nową część"
msgid "New Part"
msgstr "Nowy komponent"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Opcje"
@@ -5556,7 +5623,7 @@ msgstr "Część utworzona pomyślnie"
msgid "Import Parts"
msgstr "Importuj Części"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -5593,119 +5660,129 @@ msgstr ""
msgid "Refresh"
msgstr "Odśwież"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr "Warianty Części"
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr "Utwórz nowy wariant"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr "Nowy wariant"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr "Powiązane części"
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr "Dodaj powiązane"
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "Zestawienie materiałowe"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr "Akcje eksportu"
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr "Eksportuj BOM"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr "Drukuj raport BOM"
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr "Wgraj BOM"
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr "Weryfikuj BOM"
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr "Dodaj część do BOM"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr "Złożenia"
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Dostawcy Części"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "Producenci części"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr "Powiązane części"
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr "Dodaj powiązaną część"
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
-msgstr "Niewystarczające uprawnienia."
+msgid "Insufficient privileges."
+msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
msgid "Return to Parts"
@@ -5715,6 +5792,34 @@ msgstr "Powrót do części"
msgid "Import Parts from File"
msgstr "Importuj części z pliku"
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr "Wybierz format pliku"
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Lista części"
@@ -5804,12 +5909,12 @@ msgstr "Część jest wirtualna (nie fizyczna)"
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr "Nieaktywny"
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr "Minimalny poziom stanu magazynowego"
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "Ostatni numer seryjny"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr "Szukaj numeru seryjnego"
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr "Oblicz"
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr "Nie znaleziono pasujących obrazów"
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr "Ukryj szczegóły części"
@@ -5920,15 +6025,6 @@ msgstr "Cena wewnętrzna"
msgid "No pricing information is available for this part."
msgstr "Brak dostępnych informacji o cenach dla tej części."
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr "Data"
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr "Warianty"
msgid "Scheduling"
msgstr "Planowanie"
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr "Szablony testowe"
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "Brak w magazynie"
@@ -6087,27 +6183,32 @@ msgstr "Nieznana baza danych"
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr "Kod QR części"
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr "Wybierz obrazek części"
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr "Zaktualizowano zdjęcie części"
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "Nie znaleziono obrazka części"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr "Cennik części"
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Numer Seryjny"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr "Zainstalowane elementy"
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr "Numer seryjny"
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr "Data ważności"
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr "Ostatnia inwentaryzacja"
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr "Podstawowy adres URL dla tej wtyczki to %(email)s is an email address for user %(user_display)s."
msgstr "Proszę potwierdzić że %(email)s jest adresem e-mail dla użytkownika %(user_display)s."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Potwierdź"
@@ -8316,7 +8443,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr "Minimalna ilość"
@@ -8469,7 +8596,7 @@ msgstr ""
msgid "Unlink"
msgstr "Rozłącz"
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8551,16 +8678,6 @@ msgstr "Zamknij"
msgid "Download BOM Template"
msgstr "Pobierz szablon BOM-u"
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr "Wybierz format pliku"
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8691,7 +8808,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8776,13 +8893,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr "Ostatni numer seryjny"
@@ -8990,9 +9107,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr "Wybierz"
@@ -9004,7 +9121,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr "Brak informacji o użytkowniku"
@@ -9077,34 +9194,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "Nie znaleziono parametrów"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Edytuj Parametr"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Usuń parametr"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Edytuj Parametr"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Usuń parametr"
@@ -9184,61 +9301,61 @@ msgstr "Wyczyść wszystkie filtry"
msgid "Create filter"
msgstr "Utwórz filtr"
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr "Działanie zabronione"
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Operacja utworzenia nie jest dozwolona"
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Operacja aktualizacji nie jest dozwolona"
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Operacja usuwania nie jest dozwolona"
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Operacja przeglądania nie jest dozwolona"
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr "Pozostaw ten formularz otwarty"
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr "Wprowadź poprawny numer"
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Istnieją błędy formularza"
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr "Nie znaleziono wyników"
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr "Wyszukiwanie"
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr "Wyczyść wejście"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr "Kolumna pliku"
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr "Nazwa pola"
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr "Wybór Kolumn"
@@ -9259,7 +9376,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr "Wybierz przedmioty magazynowe"
@@ -9593,7 +9710,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9617,7 +9734,7 @@ msgstr "Potwierdź odbiór elementów"
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9650,8 +9767,8 @@ msgstr ""
msgid "Total"
msgstr "Razem"
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9669,11 +9786,11 @@ msgid "Total Price"
msgstr "Cena całkowita"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9794,7 +9911,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9838,334 +9955,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Atrybuty części"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr "Dodaj dane dostawcy"
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr "Kopiuj obraz"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr "Kopiuj parametry"
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr "Czy na pewno chcesz usunąć tę kategorię części?"
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "Edytuj część"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr "Część zmodyfikowana"
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr "Utwórz wariant części"
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr "Masz włączone powiadomienia dla tej części"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr "Masz włączone powiadomienia dla tej części"
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr "Włącz powiadomienia dla tej części"
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr "Zostałeś wypisany z powiadomień dla tej części"
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr "Obserwowane części"
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Nie znaleziono wariantów"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "Nie znaleziono części"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Brak kategorii"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Wyświetl jako listę"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Wyświetl jako siatkę"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "Ustaw kategorię części"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Wyświetl jako drzewo"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr "Obserwowana kategoria"
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10293,388 +10434,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "Czy na pewno chcesz skasować tą lokację?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr "Czy na pewno chcesz usunąć tą część?"
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr "Przenieś"
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr "Weź"
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr "Usuń stan magazynowy"
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr "BRAK WYNIKÓW"
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr "Dodaj wynik testu"
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "W produkcji"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr "Kod statusu musi być wybrany"
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "Szczegóły"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "Lokalizacja już nie istnieje"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr "Zamówienie zakupu już nie istnieje"
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr "Klient już nie istnieje"
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr "Element magazynowy już nie istnieje"
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr "Usunięto"
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10699,7 +10840,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10915,6 +11056,10 @@ msgstr ""
msgid "Purchasable"
msgstr "Możliwość zakupu"
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Pokaż widok kalendarza"
@@ -11209,35 +11354,35 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr "Ważne daty"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Grupa"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Widok"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Zmień"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:224
+#: users/models.py:225
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 8189d92cf3..45b27d9758 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -34,7 +34,7 @@ msgstr "Insira uma Data"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Insira uma Data"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Anotações"
@@ -204,18 +204,18 @@ msgstr "Anexo"
msgid "Select file to attach"
msgstr "Selecione arquivo para anexar"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Link para URL externa"
@@ -229,12 +229,13 @@ msgstr "Comentario"
msgid "File comment"
msgstr "Comentario sobre arquivo"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Usuario"
@@ -271,19 +272,20 @@ msgstr "Erro renomeando o arquivo"
msgid "Invalid choice"
msgstr "Escolha invalida"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Nome"
@@ -292,24 +294,25 @@ msgstr "Nome"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Descricao"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "parent"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Caminho"
@@ -354,7 +357,7 @@ msgstr "Erro de servidor"
msgid "An error has been logged by the server."
msgstr "Log de erro salvo pelo servidor."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Preicsa ser um numero valido"
@@ -421,107 +424,107 @@ msgstr "URL do arquivo de imagem remoto"
msgid "Downloading images from remote URL is not enabled"
msgstr "Baixar imagens de URL remota não está habilitado"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tcheco"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Dinamarquês"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Alemão"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Grego"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Inglês"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Espanhol"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Espanhol (Mexicano)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Persa"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francês"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebraico"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Húngaro"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japonês"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Holandês"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norueguês"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polonês"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -652,7 +655,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Confirmar"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index e15118ab34..4ca87518a5 100644
--- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-25 08:14+0000\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -35,7 +35,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -45,8 +45,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -205,18 +205,18 @@ msgstr ""
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1608
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr ""
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr ""
@@ -230,12 +230,13 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr ""
@@ -272,19 +273,20 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr ""
@@ -293,24 +295,25 @@ msgstr ""
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1490 templates/js/translated/part.js:2039
-#: templates/js/translated/part.js:2114 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr ""
@@ -323,7 +326,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2048 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -355,7 +358,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr ""
@@ -422,107 +425,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr ""
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr ""
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr ""
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -653,7 +656,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -757,7 +760,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -767,8 +770,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -794,13 +798,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -820,12 +826,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1467 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -891,7 +897,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -924,7 +930,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -937,7 +943,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1012,8 +1018,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1023,12 +1029,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1050,13 +1057,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2561
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1098,8 +1106,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1114,7 +1122,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1147,9 +1155,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1163,8 +1172,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1240,8 +1249,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1407,7 +1416,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1485,8 +1494,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1618,8 +1627,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1636,7 +1645,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1929,9 +1938,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1939,7 +1948,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1950,7 +1959,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1959,7 +1968,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1967,7 +1976,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1976,10 +1985,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1987,10 +1996,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2418,7 +2427,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2750,41 +2759,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2792,131 +2810,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2935,7 +2955,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2996,7 +3018,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3029,8 +3051,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3056,12 +3078,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3071,11 +3093,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3101,8 +3123,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3110,10 +3132,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3133,24 +3155,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3167,24 +3189,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3197,7 +3220,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3205,7 +3228,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3217,8 +3240,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3301,7 +3324,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3315,7 +3338,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3324,19 +3347,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3352,7 +3375,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3381,7 +3404,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3395,9 +3418,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3418,9 +3441,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3452,7 +3475,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3483,28 +3506,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3515,7 +3538,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3539,7 +3562,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3579,7 +3602,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3631,7 +3654,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3663,10 +3686,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1371
-#: templates/js/translated/part.js:1527 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3681,7 +3704,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3693,7 +3716,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3802,9 +3825,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3974,7 +3997,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3985,7 +4008,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4351,18 +4374,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4370,18 +4396,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4390,12 +4419,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4430,6 +4460,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4568,12 +4599,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4581,32 +4612,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1484
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4614,7 +4645,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4626,8 +4657,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1374 templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4643,115 +4674,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1378 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2058 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4802,7 +4833,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4813,423 +4844,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1506 templates/js/translated/part.js:1763
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2109
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2118
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2126
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2133
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5237,189 +5304,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5451,7 +5518,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5508,8 +5575,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5557,7 +5624,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5594,118 +5661,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5716,6 +5793,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5805,12 +5910,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5838,38 +5943,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1597
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5921,15 +6026,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5942,7 +6038,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5961,7 +6057,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6024,8 +6120,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1366 templates/js/translated/part.js:1368
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6088,27 +6184,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6157,28 +6258,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6410,6 +6531,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6428,7 +6553,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6460,8 +6585,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6516,13 +6642,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6937,7 +7059,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6945,7 +7067,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7118,10 +7240,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7395,7 +7513,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7476,6 +7595,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7493,7 +7620,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7502,7 +7629,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7670,67 +7797,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7759,12 +7886,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7776,7 +7903,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7946,64 +8073,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8081,7 +8208,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8115,7 +8242,7 @@ msgid "Forgot Password?"
msgstr ""
#: templates/account/login.html:53
-msgid "or use SSO"
+msgid "Sign in using third-party SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
@@ -8316,7 +8443,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8469,7 +8596,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8551,16 +8678,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8691,7 +8808,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1565
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8776,13 +8893,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8990,9 +9107,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1459
-#: templates/js/translated/part.js:1996 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9004,7 +9121,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9077,34 +9194,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9184,61 +9301,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9259,7 +9376,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9593,7 +9710,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9617,7 +9734,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9650,8 +9767,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9669,11 +9786,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9794,7 +9911,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9838,334 +9955,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1547
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1648
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1514
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1545
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1569
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1573
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1915
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1688
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1754
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1759
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1764
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1777
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1935 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2015
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2031
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2095
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2146 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2147 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2153
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2175
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2189
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2270 templates/js/translated/part.js:2271
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2273
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2279
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2329
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2335
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2431
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2447
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2492
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10293,388 +10434,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10699,7 +10840,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10915,6 +11056,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11209,34 +11354,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 e9ba39684d..c27bed1735 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -34,7 +34,7 @@ msgstr "Введите дату"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Введите дату"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Заметки"
@@ -204,18 +204,18 @@ msgstr "Вложения"
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Ссылка"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
@@ -229,12 +229,13 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Пользователь"
@@ -271,19 +272,20 @@ msgstr "Ошибка переименования файла"
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Название"
@@ -292,24 +294,25 @@ msgstr "Название"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Описание"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "родитель"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Путь"
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Венгерский"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Китайский"
@@ -652,7 +655,7 @@ msgstr "Отделить от родительского элемента"
msgid "Split child item"
msgstr "Разбить дочерний элемент"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Объединенные позиции на складе"
@@ -756,7 +759,7 @@ msgstr "Порядок сборки"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Порядок сборки"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Ссылка на заказ"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Детали"
@@ -890,7 +896,7 @@ msgstr "Код партии"
msgid "Batch code for this build output"
msgstr "Код партии для этого вывода сборки"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Дата создания"
@@ -923,7 +929,7 @@ msgstr "Пользователь, выпустивший этот заказ н
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Пользователь, ответственный за этот за
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Внешняя ссылка"
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Предметы на складе"
@@ -1022,12 +1028,13 @@ msgstr "Исходный складской предмет"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Исходный складской предмет"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Количество"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Расположение"
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Статус"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "BOM Компонент"
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Целевая дата"
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Приложения"
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Новый заказ на сборку"
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Шаблон"
@@ -1938,7 +1947,7 @@ msgstr "Шаблон"
msgid "Parts are templates by default"
msgstr "По умолчанию детали являются шаблонами"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Сборка"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Компонент"
@@ -1958,7 +1967,7 @@ msgstr "Компонент"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Можно продавать"
@@ -1975,10 +1984,10 @@ msgstr "Можно продавать"
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Отслеживание"
@@ -1986,10 +1995,10 @@ msgstr "Отслеживание"
msgid "Parts are trackable by default"
msgstr "По умолчанию детали являются отслеживаемыми"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Цена"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Загрузить файл"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr "Детали импортированы"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr "Контактное лицо"
msgid "Link to external company information"
msgstr "Ссылка на описание компании"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Изображение"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Является ли компания производителем деталей?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Валюта"
@@ -3055,12 +3077,12 @@ msgstr "Выберите деталь"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Производитель"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Выберите производителя"
@@ -3070,11 +3092,11 @@ msgstr "Выберите производителя"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Код производителя"
@@ -3100,8 +3122,8 @@ msgstr "Наименование параметра"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Значение"
@@ -3109,10 +3131,10 @@ msgstr "Значение"
msgid "Parameter value"
msgstr "Значение параметра"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "Ед.изм"
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Поставщик"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Выберите поставщика"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr "Код поставщика"
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Заметка"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Упаковка"
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Покупатель"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "Телефон"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "Загрузить изображение"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Скачать изображение"
@@ -3351,7 +3374,7 @@ msgstr "Создать новую деталь поставщика"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Новая деталь поставщика"
@@ -3380,7 +3403,7 @@ msgstr "Детали производителей"
msgid "Create new manufacturer part"
msgstr "Создать новую деталь производителя"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "Новая деталь производителя"
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Производители"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "Поставщики"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Удалить деталь поставщика"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "Удалить"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Параметры"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "Удалить параметры"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "Добавить параметр"
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Деталь поставщика"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr "Создать единицу хранения"
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr "Новая единица хранения"
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Склад"
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Детали на складе"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Заказ на закупку"
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Закупочная цена"
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Удалить строку"
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "Артикул"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr "Наименование детали"
@@ -4580,32 +4611,32 @@ msgstr "Наименование детали"
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Версия"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Ключевые слова"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "Код категории"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Минимальный запас"
@@ -4625,8 +4656,8 @@ msgstr "На складе"
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "Путь к категории"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Детали"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr "IPN"
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Место хранения по умолчанию"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Категория детали"
@@ -4812,423 +4843,459 @@ msgstr "Категория детали"
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Наименование детали"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "Шаблон"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "Эта деталь является шаблоном для других деталей?"
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr "Эта деталь является разновидностью другой детали?"
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Разновидность"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Описание детали"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr "Ключевые слова для улучшения видимости в результатах поиска"
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "Категория"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "Категория"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr "Внутренний код детали"
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "Версия детали"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr "Где обычно хранится эта деталь?"
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr "Минимально допустимый складской запас"
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr "Может ли эта деталь быть создана из других деталей?"
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr "Может ли эта деталь использоваться для создания других деталей?"
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?"
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?"
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "Может ли эта деталь быть продана покупателям?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "Эта деталь актуальна?"
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Эта деталь виртуальная, как программный продукт или лицензия?"
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr "Родительская деталь"
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "Шаблон параметра"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr "Артикул или наименование детали"
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr "Значение IPN"
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr "Выберите родительскую деталь"
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Разрешить разновидности"
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr "Для отслеживаемых деталей количество должно быть целым числом"
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr "Часть 1"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr "Часть 2"
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr "Валюта покупки этой единицы хранения"
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr "Подходящая деталь не найдена"
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr "Действия с BOM"
@@ -5507,8 +5574,8 @@ msgstr "Создать новую деталь"
msgid "New Part"
msgstr "Новая деталь"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "Настройки"
@@ -5556,7 +5623,7 @@ msgstr "Деталь создана успешно"
msgid "Import Parts"
msgstr "Импортировать детали"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr "Дублировать деталь"
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr "Обновить"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr "Разновидности детали"
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr "Создать новую разновидность"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr "Новая разновидность"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr "Спецификация"
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr "Экспорт"
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr "Экспорт BOM"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr "Сборки"
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Поставщики"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Список деталей"
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr "Минимальный складской запас"
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr "Подходящие изображения не найдены"
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr "Внутренняя цена"
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr "Разновидности"
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr "Неизвестная база данных"
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "Изображение детали не найдено"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr "Включить уведомления по электронной почте"
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr "Разрешить отправку уведомлений о событиях по электронной почте"
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Серийный номер"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr "Установленные единицы хранения"
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr "Установить единицу хранения"
@@ -6944,7 +7066,7 @@ msgstr "Установить единицу хранения"
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr "Открыть в новой вкладке"
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "Настройки деталей"
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr "Шаблон параметра детали"
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr "Настройки плагинов"
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr "Изменить настройки"
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr "Изменить настройки плагинов"
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr "Изменить глобальные настройки"
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr "Изменить настройки пользователя"
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr "Шаблоны параметров категории не найдены"
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
+#: templates/InvenTree/settings/settings.html:237
+#: templates/InvenTree/settings/settings.html:362
msgid "Edit Template"
msgstr "Редактировать шаблон"
-#: templates/InvenTree/settings/settings.html:237
-#: templates/InvenTree/settings/settings.html:362
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr "Удалить шаблон"
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr "Шаблоны параметров детали не найдены"
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr "Идентификатор"
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr "Настройки поиска"
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr "Глобальные настройки"
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr "Вы действительно хотите удалить выбранный адрес электронной почты?"
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr "Настройки темы"
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr "Настройки языка"
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr "Подтверждение адреса электронной почт
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr "Пожалуйста, подтвердите, что %(email)s является адресом электронной почты пользователя %(user_display)s."
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Подтвердить"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr "Минимальное количество"
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr "Скачать шаблон BOM"
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr "Информация о детали производителя не найдена"
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr "Деталь-шаблон"
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "Параметры не найдены"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "Редактировать параметр"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "Удалить параметр"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "Редактировать параметр"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "Удалить параметр"
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr "Операция создания не разрешена"
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr "Операция обновления не разрешена"
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr "Операция удаления не разрешена"
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr "Операция просмотра не разрешена"
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Форма содержит ошибки"
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr "Не найдено"
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr "Заказов на закупку не найдено"
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr "Общая стоимость"
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "Атрибуты детали"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr "Настройки создания детали"
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr "Настройки дублирования детали"
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr "Настройки поставщика"
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "Добавить категорию"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr "Копировать параметры категории"
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr "Добавить данные поставщика"
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr "Создать начальные данные поставщика для этой детали"
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr "Родительская категория"
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "Редактировать категорию"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr "Вы уверены, что хотите удалить эту категорию?"
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr "Удалить категорию"
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr "Создать разновидность детали"
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr "Вы подписаны на уведомления для данного элемента"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr "Вы подписались на уведомления для данного элемента"
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr "Включить уведомления для данного элемента"
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr "Вы отписались от уведомлений для данного элемента"
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "Отслеживаемая деталь"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Разновидности не найдены"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr "Детали не найдены"
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Нет категории"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr "Список"
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr "Таблица"
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "Укажите категорию"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr "Дерево"
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "Вы уверены, что хотите удалить место хранения?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr "Создано несколько единиц хранения"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr "Предупреждение: Операция объединения не может быть отменена"
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr "Следующие данные будут потеряны в процессе объединения"
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr "История складских перемещений будет удалена для объединённых элементов"
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr "Информация о деталях поставщика будет удалена для объединённых элементов"
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr "Права доступа"
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "Права доступа"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Вид"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Разрешение на просмотр элементов"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Разрешение на добавление элементов"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Разрешение на редактирование элементов"
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr "Разрешение на удаление элементов"
diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po
index de590cc57c..b98117195b 100644
--- a/InvenTree/locale/sl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:27\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -34,7 +34,7 @@ msgstr "Vnesi datum"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Vnesi datum"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Zapiski"
@@ -204,18 +204,18 @@ msgstr "Priloga"
msgid "Select file to attach"
msgstr "Izberite prilogo"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Povezava"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Zunanja povezava"
@@ -229,12 +229,13 @@ msgstr "Komentar"
msgid "File comment"
msgstr "Komentar datoteke"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Uporabnik"
@@ -271,19 +272,20 @@ msgstr "Napaka pri preimenovanju datoteke"
msgid "Invalid choice"
msgstr "Nedovoljena izbira"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Ime"
@@ -292,24 +294,25 @@ msgstr "Ime"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Opis"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "nadrejen"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Pot"
@@ -354,7 +357,7 @@ msgstr "Napaka strežnika"
msgid "An error has been logged by the server."
msgstr "Zaznana napaka na strežniku."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Mora biti veljavna številka"
@@ -421,107 +424,107 @@ msgstr "Povezava do oddaljene slike"
msgid "Downloading images from remote URL is not enabled"
msgstr "Prenos slik iz oddaljene povezave ni omogočen"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Češko"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "Danščina"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Nemščina"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Grščina"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Angleščina"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Španščina"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Španščina (Mehiško)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Perzijsko"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Francoščina"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebrejščina"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Madžarščina"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italijanščina"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japonščina"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Korejščina"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Nizozemščina"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norveščina"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Poljščina"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugalščina"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugalščina (Brazilsko)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Ruščina"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr "Slovenščina"
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Švedščina"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Tajščina"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turščina"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamščina"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Kitajščina"
@@ -652,7 +655,7 @@ msgstr "Razdeljena od nadrejene postavke"
msgid "Split child item"
msgstr "Razdeljena podrejena postavka"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Združena zaloga postavk"
@@ -756,7 +759,7 @@ msgstr "Nalog izgradnje"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Nalogi izgradnje"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Referenca naloga izgradnje"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Del"
@@ -890,7 +896,7 @@ msgstr "Številka serije"
msgid "Batch code for this build output"
msgstr "Številka serije za to izgradnjo"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Datum ustvarjenja"
@@ -923,7 +929,7 @@ msgstr "Uporabnik, ki je izdal nalog za izgradnjo"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Uporabnik odgovoren za to izgradnjo"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Zunanja povezava"
@@ -1011,8 +1017,8 @@ msgstr "Izdelaj da prestaviš dele"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Postavka zaloge"
@@ -1022,12 +1028,13 @@ msgstr "Izvorna postavka zaloge"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Izvorna postavka zaloge"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Količina"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 efd96369de..35e33712f2 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:29\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -34,7 +34,7 @@ msgstr "Ange datum"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Ange datum"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Anteeckningar"
@@ -204,18 +204,18 @@ msgstr "Bilaga"
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Länk"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Länk till extern URL"
@@ -229,12 +229,13 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Användare"
@@ -271,19 +272,20 @@ msgstr "Fel vid namnbyte av fil"
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Namn"
@@ -292,24 +294,25 @@ msgstr "Namn"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Beskrivning"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "överordnad"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "Sökväg"
@@ -354,7 +357,7 @@ msgstr "Serverfel"
msgid "An error has been logged by the server."
msgstr "Ett fel har loggats av servern."
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
@@ -421,107 +424,107 @@ msgstr "URL för fjärrbildsfil"
msgid "Downloading images from remote URL is not enabled"
msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "Tjeckiska"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "Spanska (Mexikanska)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "Farsi / Persiska"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Ungerska"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "Portugisiska"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "Portugisiska (brasiliansk)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Kinesiska"
@@ -652,7 +655,7 @@ msgstr "Dela från överordnat objekt"
msgid "Split child item"
msgstr "Dela underordnat objekt"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Sammanfogade lagerposter"
@@ -756,7 +759,7 @@ msgstr "Byggorder"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Byggordrar"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Byggorderreferens"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Byggorder till vilken detta bygge är tilldelad"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Del"
@@ -890,7 +896,7 @@ msgstr "Batchkod"
msgid "Batch code for this build output"
msgstr "Batch-kod för denna byggutdata"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Skapad"
@@ -923,7 +929,7 @@ msgstr "Användare som utfärdade denna byggorder"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Användare som ansvarar för denna byggorder"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Extern länk"
@@ -1011,8 +1017,8 @@ msgstr "Bygg för att allokera delar"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Artikel i lager"
@@ -1022,12 +1028,13 @@ msgstr "Källa lagervara"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Källa lagervara"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Antal"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Plats"
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Status"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Måldatum"
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Bilagor"
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Ny byggorder"
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Virtuell"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Bekräfta"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 45a357ee41..17c8b665c6 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -34,7 +34,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -204,18 +204,18 @@ msgstr ""
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr ""
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr ""
@@ -229,12 +229,13 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr ""
@@ -271,19 +272,20 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr ""
@@ -292,24 +294,25 @@ msgstr ""
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr ""
@@ -322,7 +325,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr ""
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr ""
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr ""
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr ""
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -652,7 +655,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr ""
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr ""
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr ""
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr ""
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr ""
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr ""
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr ""
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 f640224781..7c5f54e5a2 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -34,7 +34,7 @@ msgstr "Tarih giriniz"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "Tarih giriniz"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "Notlar"
@@ -204,18 +204,18 @@ msgstr "Ek"
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "Bağlantı"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
@@ -229,12 +229,13 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Kullanıcı"
@@ -271,19 +272,20 @@ msgstr "Dosya adı değiştirilirken hata"
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "Adı"
@@ -292,24 +294,25 @@ msgstr "Adı"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Açıklama"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "üst"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "İspanyolca(Meksika)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "Macarca"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "Vietnamca"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "Çince"
@@ -652,7 +655,7 @@ msgstr "Üst ögeden ayır"
msgid "Split child item"
msgstr "Alt ögeyi ayır"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "Stok parçalarını birleştir"
@@ -756,7 +759,7 @@ msgstr "Yapım İşi Emri"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Parça"
@@ -890,7 +896,7 @@ msgstr "Sıra numarası"
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
@@ -923,7 +929,7 @@ msgstr "Bu yapım işi emrini veren kullanıcı"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "Harici Bağlantı"
@@ -1011,8 +1017,8 @@ msgstr "Yapım işi için tahsis edilen parçalar"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "Stok Kalemi"
@@ -1022,12 +1028,13 @@ msgstr "Kaynak stok kalemi"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "Kaynak stok kalemi"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "Miktar"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "Konum"
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Durum"
@@ -1239,8 +1248,8 @@ msgstr "Gerekli yapım işi miktarı tamamlanmadı"
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Ekler"
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "Yeni Yapım İşi Emri"
@@ -1928,9 +1937,9 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "Şablon"
@@ -1938,7 +1947,7 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "Montaj"
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "Bileşen"
@@ -1958,7 +1967,7 @@ msgstr "Bileşen"
msgid "Parts can be used as sub-components by default"
msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "Satın Alınabilir"
@@ -1966,7 +1975,7 @@ msgstr "Satın Alınabilir"
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "Satılabilir"
@@ -1975,10 +1984,10 @@ msgstr "Satılabilir"
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "Takip Edilebilir"
@@ -1986,10 +1995,10 @@ msgstr "Takip Edilebilir"
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "Sanal"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr "Aktif"
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Alanları Eşleştir"
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "Resim"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "Para birimi"
@@ -3055,12 +3077,12 @@ msgstr "Parça seçin"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Üretici"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "Üretici seçin"
@@ -3070,11 +3092,11 @@ msgstr "Üretici seçin"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
@@ -3100,8 +3122,8 @@ msgstr "Parametre adı"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "Değer"
@@ -3109,10 +3131,10 @@ msgstr "Değer"
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "Tedarikçi seçin"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "Not"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "Paketleme"
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr "çoklu"
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "Mevcut"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "Müşteri"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "Resmi İndirin"
@@ -3351,7 +3374,7 @@ msgstr "Yeni tedarikçi parçası oluştur"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "Üreticiler"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "Parça siparişi"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Stok"
@@ -3680,7 +3703,7 @@ msgstr "Tedarikçi Parçası Fiyatlandırması"
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "Fiyatlandırma"
@@ -3692,7 +3715,7 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr ""
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr "Aşağıdaki gerekli sütunlar için eksik seçimler"
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr "Dosya Alanları"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr "DPN"
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr "Revizyon"
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "Minimum Stok"
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Parçalar"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:826
+#: part/models.py:827
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:827
+#: part/models.py:828
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "Parça açıklaması"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:964
+#: part/models.py:965
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:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
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:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
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:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:3394
+#: part/models.py:3472
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:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr "Yenile"
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr "Test Şablonu Ekle"
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr "Parça Çeşitleri"
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr "Yeni çeşit oluştur"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr "Yeni Çeşit"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "Parça Tedarikçileri"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr "Pasif"
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "Son Seri Numarası"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr "Hesapla"
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr "Stok Yok"
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr "İçin Gerekli Olan"
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "Seri Numara"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr "Seri No"
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek"
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr "Parça Parametre Şablonu"
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr "Kategori parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
+#: templates/InvenTree/settings/settings.html:237
+#: templates/InvenTree/settings/settings.html:362
msgid "Edit Template"
msgstr "Şablonu Düzenle"
-#: templates/InvenTree/settings/settings.html:237
-#: templates/InvenTree/settings/settings.html:362
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr "Şablonu Sil"
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr "Arama Ayarları"
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr "Tema Ayarları"
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr "Tema Seç"
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr "Dil Ayarları"
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr "Dili Ayarla"
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "Onay"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr "Kapat"
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr "Yapım işi emri eksik"
msgid "Complete Build Order"
msgstr "Tamamlanmış Yapım İşi Emri"
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr "Şablon Parça"
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "Katagori Yok"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "Detaylar"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr "Çeşit Stokuna İzin Ver"
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "Takvim görünümünü görüntüle"
@@ -11206,35 +11351,35 @@ msgstr "Yetkiler"
msgid "Important dates"
msgstr "Önemli tarihler"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "İzinleri ayarla"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "Grup"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "Görünüm"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "Parçayı görüntüleme izni"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "Parça ekleme izni"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "Değiştir"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "Parçaları düzenleme izni"
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr "Parçaları silme izni"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 75be7a6207..564713b922 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -34,7 +34,7 @@ msgstr ""
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr ""
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr ""
@@ -204,18 +204,18 @@ msgstr ""
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr ""
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr ""
@@ -229,12 +229,13 @@ msgstr "Bình luận"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "Người dùng"
@@ -271,19 +272,20 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr ""
@@ -292,24 +294,25 @@ msgstr ""
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "Mô tả"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr ""
@@ -354,7 +357,7 @@ msgstr ""
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr ""
@@ -421,107 +424,107 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr ""
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr ""
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr ""
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr ""
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr ""
@@ -652,7 +655,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr ""
@@ -756,7 +759,7 @@ msgstr "Tạo đơn hàng"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "Tạo đơn hàng"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr ""
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr ""
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "Nguyên liệu"
@@ -890,7 +896,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr ""
@@ -923,7 +929,7 @@ msgstr ""
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr ""
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr ""
@@ -1011,8 +1017,8 @@ msgstr ""
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr ""
@@ -1022,12 +1028,13 @@ msgstr ""
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr ""
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr ""
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1113,7 +1121,7 @@ msgstr ""
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr ""
@@ -1146,9 +1154,10 @@ msgstr ""
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr ""
@@ -1162,8 +1171,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "Trạng thái"
@@ -1239,8 +1248,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr ""
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr ""
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr ""
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr ""
@@ -1938,7 +1947,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr ""
@@ -1958,7 +1967,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr ""
@@ -1966,7 +1975,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr ""
@@ -1975,10 +1984,10 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr ""
@@ -1986,10 +1995,10 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr ""
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr ""
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr ""
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr ""
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2934,7 +2954,9 @@ msgstr ""
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr ""
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr ""
@@ -3055,12 +3077,12 @@ msgstr ""
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "Nhà sản xuất"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr ""
@@ -3070,11 +3092,11 @@ msgstr ""
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr ""
@@ -3100,8 +3122,8 @@ msgstr ""
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr ""
@@ -3109,10 +3131,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr ""
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "Nhà cung cấp"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr ""
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr ""
@@ -3196,7 +3219,7 @@ msgstr ""
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr ""
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr ""
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr ""
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr ""
@@ -3351,7 +3374,7 @@ msgstr ""
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr ""
@@ -3380,7 +3403,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr ""
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr ""
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr ""
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr ""
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr ""
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "Kiện hàng"
@@ -3680,7 +3703,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr ""
@@ -3692,7 +3715,7 @@ msgstr ""
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr "Đơn hàng"
@@ -3973,7 +3996,7 @@ msgstr ""
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "Giá mua"
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr ""
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr ""
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr ""
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr ""
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr ""
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "Nguyên liệu"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr ""
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr ""
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -4812,423 +4843,459 @@ msgstr ""
msgid "Part Categories"
msgstr ""
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr ""
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr ""
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr ""
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr ""
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr ""
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr ""
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr ""
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr ""
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr ""
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr ""
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr ""
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr ""
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
@@ -5804,12 +5909,12 @@ msgstr ""
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr "Số seri mới nhất"
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr ""
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr ""
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr ""
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr ""
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr ""
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr ""
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr ""
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr "Chỉnh sửa cài đặt toàn cục"
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr "Chỉnh sửa cài đặt người dùng"
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
-msgid "Edit Template"
-msgstr ""
-
#: templates/InvenTree/settings/settings.html:237
#: templates/InvenTree/settings/settings.html:362
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr "Cài đặt tìm kiếm"
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr "Cài đặt toàn cục"
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr "Thiết lập giao diện"
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr "Thiết lập ngôn ngữ"
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr ""
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr ""
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr "Số seri mới nhất"
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr ""
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr ""
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr ""
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr ""
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr ""
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr ""
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr ""
@@ -11206,35 +11351,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr ""
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr ""
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr ""
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr ""
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:224
+#: users/models.py:225
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 094fb84d29..2859fc438d 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-12-30 20:46+0000\n"
-"PO-Revision-Date: 2022-12-31 11:30\n"
+"POT-Creation-Date: 2023-01-01 11:05+0000\n"
+"PO-Revision-Date: 2023-01-01 11:26\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -34,7 +34,7 @@ msgstr "输入日期"
#: company/templates/company/sidebar.html:25 order/models.py:943
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/admin.py:27
-#: part/templates/part/part_sidebar.html:57
+#: part/models.py:2932 part/templates/part/part_sidebar.html:62
#: report/templates/report/inventree_build_order_base.html:172
#: stock/admin.py:103 stock/models.py:2061 stock/models.py:2169
#: stock/serializers.py:321 stock/serializers.py:454 stock/serializers.py:535
@@ -44,8 +44,8 @@ msgstr "输入日期"
#: templates/js/translated/company.js:1023
#: templates/js/translated/order.js:2435 templates/js/translated/order.js:2569
#: templates/js/translated/order.js:3067 templates/js/translated/order.js:4004
-#: templates/js/translated/order.js:4385 templates/js/translated/stock.js:1413
-#: templates/js/translated/stock.js:2020
+#: templates/js/translated/order.js:4385 templates/js/translated/part.js:882
+#: templates/js/translated/stock.js:1412 templates/js/translated/stock.js:2015
msgid "Notes"
msgstr "备注"
@@ -204,18 +204,18 @@ msgstr "附件"
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:412 common/models.py:2366 company/models.py:129
+#: InvenTree/models.py:412 common/models.py:2373 company/models.py:129
#: company/models.py:281 company/models.py:516 order/models.py:85
-#: order/models.py:1282 part/admin.py:25 part/models.py:865
+#: order/models.py:1282 part/admin.py:25 part/models.py:866
#: part/templates/part/part_scheduling.html:11
#: report/templates/report/inventree_build_order_base.html:164
#: stock/admin.py:102 templates/js/translated/company.js:692
#: templates/js/translated/company.js:1012
-#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1615
+#: templates/js/translated/order.js:3056 templates/js/translated/part.js:1886
msgid "Link"
msgstr "链接"
-#: InvenTree/models.py:413 build/models.py:290 part/models.py:866
+#: InvenTree/models.py:413 build/models.py:290 part/models.py:867
#: stock/models.py:716
msgid "Link to external URL"
msgstr "链接到外部 URL"
@@ -229,12 +229,13 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1810
-#: common/models.py:1811 common/models.py:2034 common/models.py:2035
-#: common/models.py:2296 common/models.py:2297 part/models.py:2948
-#: part/models.py:2968 plugin/models.py:264 plugin/models.py:265
+#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1817
+#: common/models.py:1818 common/models.py:2041 common/models.py:2042
+#: common/models.py:2303 common/models.py:2304 part/models.py:2940
+#: part/models.py:3026 part/models.py:3046 plugin/models.py:264
+#: plugin/models.py:265
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2689
+#: templates/js/translated/stock.js:2684
msgid "User"
msgstr "用户"
@@ -271,19 +272,20 @@ msgstr "重命名文件出错"
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2020
-#: company/models.py:363 label/models.py:101 part/models.py:809
-#: part/models.py:3123 plugin/models.py:94 report/models.py:152
+#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:2027
+#: company/models.py:363 label/models.py:101 part/models.py:810
+#: part/models.py:3201 plugin/models.py:94 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
+#: templates/InvenTree/settings/notifications.html:17
#: templates/InvenTree/settings/plugin.html:60
#: templates/InvenTree/settings/plugin.html:104
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:344
+#: templates/InvenTree/settings/settings.html:345
#: templates/js/translated/company.js:581
#: templates/js/translated/company.js:794
#: templates/js/translated/notification.js:71
-#: templates/js/translated/part.js:711 templates/js/translated/part.js:880
-#: templates/js/translated/part.js:2010 templates/js/translated/stock.js:2434
+#: templates/js/translated/part.js:982 templates/js/translated/part.js:1151
+#: templates/js/translated/part.js:2291 templates/js/translated/stock.js:2429
msgid "Name"
msgstr "名称"
@@ -292,24 +294,25 @@ msgstr "名称"
#: company/models.py:522 company/templates/company/company_base.html:72
#: company/templates/company/manufacturer_part.html:75
#: company/templates/company/supplier_part.html:108 label/models.py:108
-#: order/models.py:83 part/admin.py:141 part/admin.py:222 part/models.py:832
-#: part/models.py:3132 part/templates/part/category.html:75
+#: order/models.py:83 part/admin.py:174 part/admin.py:255 part/models.py:833
+#: part/models.py:3210 part/templates/part/category.html:75
#: part/templates/part/part_base.html:172
#: part/templates/part/part_scheduling.html:12 report/models.py:165
#: report/models.py:507 report/models.py:551
#: report/templates/report/inventree_build_order_base.html:117
#: stock/admin.py:25 stock/templates/stock/location.html:117
+#: templates/InvenTree/settings/notifications.html:19
#: templates/InvenTree/settings/plugin_settings.html:28
-#: templates/InvenTree/settings/settings.html:355
+#: templates/InvenTree/settings/settings.html:356
#: templates/js/translated/bom.js:592 templates/js/translated/bom.js:895
#: templates/js/translated/build.js:2596 templates/js/translated/company.js:445
#: templates/js/translated/company.js:703
#: templates/js/translated/company.js:987 templates/js/translated/order.js:2030
#: templates/js/translated/order.js:2267 templates/js/translated/order.js:2845
-#: templates/js/translated/part.js:773 templates/js/translated/part.js:1223
-#: templates/js/translated/part.js:1497 templates/js/translated/part.js:2046
-#: templates/js/translated/part.js:2121 templates/js/translated/stock.js:1787
-#: templates/js/translated/stock.js:2466 templates/js/translated/stock.js:2526
+#: templates/js/translated/part.js:1044 templates/js/translated/part.js:1494
+#: templates/js/translated/part.js:1768 templates/js/translated/part.js:2327
+#: templates/js/translated/part.js:2402 templates/js/translated/stock.js:1782
+#: templates/js/translated/stock.js:2461 templates/js/translated/stock.js:2521
msgid "Description"
msgstr "描述信息"
@@ -322,7 +325,7 @@ msgid "parent"
msgstr "上级项"
#: InvenTree/models.py:580 InvenTree/models.py:581
-#: templates/js/translated/part.js:2055 templates/js/translated/stock.js:2475
+#: templates/js/translated/part.js:2336 templates/js/translated/stock.js:2470
msgid "Path"
msgstr "路径"
@@ -354,7 +357,7 @@ msgstr "服务器错误"
msgid "An error has been logged by the server."
msgstr "服务器记录了一个错误。"
-#: InvenTree/serializers.py:58 part/models.py:3468
+#: InvenTree/serializers.py:58 part/models.py:3546
msgid "Must be a valid number"
msgstr "必须是有效数字"
@@ -421,107 +424,107 @@ msgstr "远程图像文件的 URL"
msgid "Downloading images from remote URL is not enabled"
msgstr "未启用从远程 URL下载图像"
-#: InvenTree/settings.py:639
+#: InvenTree/settings.py:642
msgid "Czech"
msgstr "捷克语"
-#: InvenTree/settings.py:640
+#: InvenTree/settings.py:643
msgid "Danish"
msgstr "丹麦语"
-#: InvenTree/settings.py:641
+#: InvenTree/settings.py:644
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:642
+#: InvenTree/settings.py:645
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:643
+#: InvenTree/settings.py:646
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:644
+#: InvenTree/settings.py:647
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:645
+#: InvenTree/settings.py:648
msgid "Spanish (Mexican)"
msgstr "西班牙语(墨西哥)"
-#: InvenTree/settings.py:646
+#: InvenTree/settings.py:649
msgid "Farsi / Persian"
msgstr "波斯语"
-#: InvenTree/settings.py:647
+#: InvenTree/settings.py:650
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:648
+#: InvenTree/settings.py:651
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:649
+#: InvenTree/settings.py:652
msgid "Hungarian"
msgstr "匈牙利语"
-#: InvenTree/settings.py:650
+#: InvenTree/settings.py:653
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:651
+#: InvenTree/settings.py:654
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:652
+#: InvenTree/settings.py:655
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:653
+#: InvenTree/settings.py:656
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:657
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:658
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:659
msgid "Portuguese"
msgstr "葡萄牙语"
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:660
msgid "Portuguese (Brazilian)"
msgstr "葡萄牙语 (巴西)"
-#: InvenTree/settings.py:658
+#: InvenTree/settings.py:661
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:659
+#: InvenTree/settings.py:662
msgid "Slovenian"
msgstr ""
-#: InvenTree/settings.py:660
+#: InvenTree/settings.py:663
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:661
+#: InvenTree/settings.py:664
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:662
+#: InvenTree/settings.py:665
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:666
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:667
msgid "Chinese"
msgstr "中文(简体)"
@@ -652,7 +655,7 @@ msgstr "从父项拆分"
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2124
+#: InvenTree/status_codes.py:281 templates/js/translated/stock.js:2119
msgid "Merged stock items"
msgstr "合并的库存项目"
@@ -756,7 +759,7 @@ msgstr "生产订单"
#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:141
-#: templates/InvenTree/settings/sidebar.html:47
+#: templates/InvenTree/settings/sidebar.html:49
#: templates/js/translated/search.js:254 users/models.py:41
msgid "Build Orders"
msgstr "生产订单"
@@ -766,8 +769,9 @@ msgid "Build Order Reference"
msgstr "相关生产订单"
#: build/models.py:155 order/models.py:241 order/models.py:651
-#: order/models.py:941 part/admin.py:224 part/models.py:3378
+#: order/models.py:941 part/admin.py:257 part/models.py:3456
#: part/templates/part/upload_bom.html:54
+#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:92
#: templates/js/translated/bom.js:729 templates/js/translated/bom.js:905
@@ -793,13 +797,15 @@ msgstr "此次生产匹配的订单"
#: build/models.py:180 build/templates/build/build_base.html:80
#: build/templates/build/detail.html:29 company/models.py:684
#: order/models.py:1038 order/models.py:1149 order/models.py:1150
-#: part/models.py:381 part/models.py:2781 part/models.py:2894
-#: part/models.py:2909 part/models.py:2928 part/models.py:2946
-#: part/models.py:3045 part/models.py:3166 part/models.py:3258
-#: part/models.py:3343 part/models.py:3659 part/serializers.py:853
-#: part/templates/part/part_app_base.html:8
+#: part/models.py:382 part/models.py:2799 part/models.py:2912
+#: part/models.py:2972 part/models.py:2987 part/models.py:3006
+#: part/models.py:3024 part/models.py:3123 part/models.py:3244
+#: part/models.py:3336 part/models.py:3421 part/models.py:3737
+#: part/serializers.py:894 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/upload_bom.html:52
+#: report/templates/report/inventree_bill_of_materials_report.html:110
+#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_base.html:109
#: report/templates/report/inventree_po_report.html:89
#: report/templates/report/inventree_so_report.html:90 stock/serializers.py:90
@@ -819,12 +825,12 @@ msgstr "此次生产匹配的订单"
#: templates/js/translated/order.js:1172 templates/js/translated/order.js:1676
#: templates/js/translated/order.js:2252 templates/js/translated/order.js:3199
#: templates/js/translated/order.js:3595 templates/js/translated/order.js:3825
-#: templates/js/translated/part.js:1208 templates/js/translated/part.js:1280
-#: templates/js/translated/part.js:1474 templates/js/translated/pricing.js:102
-#: templates/js/translated/stock.js:618 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:993 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2552 templates/js/translated/stock.js:2747
-#: templates/js/translated/stock.js:2884
+#: templates/js/translated/part.js:1479 templates/js/translated/part.js:1551
+#: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:102
+#: templates/js/translated/stock.js:617 templates/js/translated/stock.js:782
+#: templates/js/translated/stock.js:992 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2547 templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2879
msgid "Part"
msgstr "商品"
@@ -890,7 +896,7 @@ msgstr "批量代码"
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:252 order/models.py:87 part/models.py:1001
+#: build/models.py:252 order/models.py:87 part/models.py:1002
#: part/templates/part/part_base.html:318 templates/js/translated/order.js:2858
msgid "Creation Date"
msgstr "创建日期"
@@ -923,7 +929,7 @@ msgstr "发布此生产订单的用户"
#: build/models.py:283 build/templates/build/build_base.html:193
#: build/templates/build/detail.html:115 order/models.py:101
#: order/templates/order/order_base.html:185
-#: order/templates/order/sales_order_base.html:183 part/models.py:1005
+#: order/templates/order/sales_order_base.html:183 part/models.py:1006
#: report/templates/report/inventree_build_order_base.html:158
#: templates/js/translated/build.js:2658 templates/js/translated/order.js:2064
msgid "Responsible"
@@ -936,7 +942,7 @@ msgstr "负责此生产订单的用户"
#: build/models.py:289 build/templates/build/detail.html:101
#: company/templates/company/manufacturer_part.html:107
#: company/templates/company/supplier_part.html:188
-#: part/templates/part/part_base.html:376 stock/models.py:714
+#: part/templates/part/part_base.html:390 stock/models.py:714
#: stock/templates/stock/item_base.html:203
msgid "External Link"
msgstr "外部链接"
@@ -1011,8 +1017,8 @@ msgstr "生产以分配部件"
#: templates/js/translated/order.js:107 templates/js/translated/order.js:3200
#: templates/js/translated/order.js:3502 templates/js/translated/order.js:3507
#: templates/js/translated/order.js:3602 templates/js/translated/order.js:3694
-#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
-#: templates/js/translated/stock.js:2625
+#: templates/js/translated/part.js:803 templates/js/translated/stock.js:618
+#: templates/js/translated/stock.js:783 templates/js/translated/stock.js:2620
msgid "Stock Item"
msgstr "库存项"
@@ -1022,12 +1028,13 @@ msgstr "源库存项"
#: build/models.py:1364 build/serializers.py:192
#: build/templates/build/build_base.html:85
-#: build/templates/build/detail.html:34 common/models.py:1842
+#: build/templates/build/detail.html:34 common/models.py:1849
#: order/models.py:934 order/models.py:1460 order/serializers.py:1206
-#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:223
-#: part/forms.py:40 part/models.py:3359
+#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:256
+#: part/forms.py:40 part/models.py:2919 part/models.py:3437
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
+#: report/templates/report/inventree_bill_of_materials_report.html:138
#: report/templates/report/inventree_build_order_base.html:113
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:91
@@ -1049,13 +1056,14 @@ msgstr "源库存项"
#: templates/js/translated/order.js:3201 templates/js/translated/order.js:3521
#: templates/js/translated/order.js:3608 templates/js/translated/order.js:3700
#: templates/js/translated/order.js:3847 templates/js/translated/order.js:4338
-#: templates/js/translated/part.js:1078 templates/js/translated/part.js:2568
+#: templates/js/translated/part.js:805 templates/js/translated/part.js:876
+#: templates/js/translated/part.js:1349 templates/js/translated/part.js:2849
#: templates/js/translated/pricing.js:114
#: templates/js/translated/pricing.js:207
#: templates/js/translated/pricing.js:255
-#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:490
-#: templates/js/translated/stock.js:644 templates/js/translated/stock.js:814
-#: templates/js/translated/stock.js:2674 templates/js/translated/stock.js:2759
+#: templates/js/translated/pricing.js:349 templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:643 templates/js/translated/stock.js:813
+#: templates/js/translated/stock.js:2669 templates/js/translated/stock.js:2754
msgid "Quantity"
msgstr "数量"
@@ -1097,8 +1105,8 @@ msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
#: build/serializers.py:207 build/serializers.py:683 order/models.py:327
-#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:645
-#: part/serializers.py:1016 stock/models.py:574 stock/models.py:1312
+#: order/serializers.py:298 order/serializers.py:450 part/serializers.py:686
+#: part/serializers.py:1057 stock/models.py:574 stock/models.py:1312
#: stock/serializers.py:294
msgid "Quantity must be greater than zero"
msgstr "数量必须大于0"
@@ -1113,7 +1121,7 @@ msgstr "需要整数型数值,因为BOM包含可追踪的部件"
#: build/serializers.py:231 order/serializers.py:463 order/serializers.py:1210
#: stock/serializers.py:303 templates/js/translated/order.js:1545
-#: templates/js/translated/stock.js:303 templates/js/translated/stock.js:491
+#: templates/js/translated/stock.js:302 templates/js/translated/stock.js:490
msgid "Serial Numbers"
msgstr "序列号"
@@ -1146,9 +1154,10 @@ msgstr "必须提供生产产出列表"
#: templates/js/translated/build.js:1759 templates/js/translated/order.js:1572
#: templates/js/translated/order.js:3514 templates/js/translated/order.js:3619
#: templates/js/translated/order.js:3627 templates/js/translated/order.js:3708
-#: templates/js/translated/part.js:183 templates/js/translated/stock.js:620
-#: templates/js/translated/stock.js:785 templates/js/translated/stock.js:995
-#: templates/js/translated/stock.js:1895 templates/js/translated/stock.js:2566
+#: templates/js/translated/part.js:186 templates/js/translated/part.js:804
+#: templates/js/translated/stock.js:619 templates/js/translated/stock.js:784
+#: templates/js/translated/stock.js:994 templates/js/translated/stock.js:1890
+#: templates/js/translated/stock.js:2561
msgid "Location"
msgstr "地点"
@@ -1162,8 +1171,8 @@ msgstr "已完成生产产出的仓储地点"
#: stock/templates/stock/item_base.html:421
#: templates/js/translated/barcode.js:237 templates/js/translated/build.js:2630
#: templates/js/translated/order.js:1681 templates/js/translated/order.js:2034
-#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1870
-#: templates/js/translated/stock.js:2643 templates/js/translated/stock.js:2775
+#: templates/js/translated/order.js:2850 templates/js/translated/stock.js:1865
+#: templates/js/translated/stock.js:2638 templates/js/translated/stock.js:2770
msgid "Status"
msgstr "状态"
@@ -1239,8 +1248,8 @@ msgstr "所需生产数量尚未完成"
msgid "Build order has incomplete outputs"
msgstr "生产订单有未完成的产出"
-#: build/serializers.py:595 build/serializers.py:640 part/models.py:3495
-#: part/models.py:3651
+#: build/serializers.py:595 build/serializers.py:640 part/models.py:3573
+#: part/models.py:3729
msgid "BOM Item"
msgstr "BOM项"
@@ -1406,7 +1415,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:125
#: templates/js/translated/build.js:2670 templates/js/translated/order.js:2051
#: templates/js/translated/order.js:2382 templates/js/translated/order.js:2866
-#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1093
+#: templates/js/translated/order.js:3892 templates/js/translated/part.js:1364
msgid "Target Date"
msgstr "预计日期"
@@ -1484,8 +1493,8 @@ msgstr ""
#: stock/templates/stock/item_base.html:168
#: templates/js/translated/build.js:1250
#: templates/js/translated/model_renderers.js:124
-#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:1884
-#: templates/js/translated/stock.js:2782
+#: templates/js/translated/stock.js:1060 templates/js/translated/stock.js:1879
+#: templates/js/translated/stock.js:2777
#: templates/js/translated/table_filters.js:179
#: templates/js/translated/table_filters.js:270
msgid "Batch"
@@ -1617,8 +1626,8 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:86
#: order/templates/order/sales_order_detail.html:140
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:210
-#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:117
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233
+#: part/templates/part/part_sidebar.html:60 stock/templates/stock/item.html:117
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "附件"
@@ -1635,7 +1644,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:316
+#: build/templates/build/index.html:18 part/templates/part/detail.html:339
msgid "New Build Order"
msgstr "新建生产订单"
@@ -1928,9 +1937,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:1014 part/admin.py:41 part/models.py:3168
+#: common/models.py:1014 part/admin.py:41 part/models.py:3246
#: report/models.py:158 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:504
+#: templates/js/translated/table_filters.js:508
msgid "Template"
msgstr "模板"
@@ -1938,7 +1947,7 @@ msgstr "模板"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:1021 part/admin.py:37 part/admin.py:229 part/models.py:957
+#: common/models.py:1021 part/admin.py:37 part/admin.py:262 part/models.py:958
#: templates/js/translated/bom.js:1595
#: templates/js/translated/table_filters.js:196
#: templates/js/translated/table_filters.js:467
@@ -1949,7 +1958,7 @@ msgstr "组装"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:1028 part/admin.py:38 part/models.py:963
+#: common/models.py:1028 part/admin.py:38 part/models.py:964
#: templates/js/translated/table_filters.js:475
msgid "Component"
msgstr "组件"
@@ -1958,7 +1967,7 @@ msgstr "组件"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:1035 part/admin.py:39 part/models.py:974
+#: common/models.py:1035 part/admin.py:39 part/models.py:975
msgid "Purchaseable"
msgstr "可购买"
@@ -1966,7 +1975,7 @@ msgstr "可购买"
msgid "Parts are purchaseable by default"
msgstr "商品默认可购买"
-#: common/models.py:1042 part/admin.py:40 part/models.py:979
+#: common/models.py:1042 part/admin.py:40 part/models.py:980
#: templates/js/translated/table_filters.js:496
msgid "Salable"
msgstr "可销售"
@@ -1975,10 +1984,10 @@ msgstr "可销售"
msgid "Parts are salable by default"
msgstr "商品默认可销售"
-#: common/models.py:1049 part/admin.py:42 part/models.py:969
+#: common/models.py:1049 part/admin.py:42 part/models.py:970
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:508
+#: templates/js/translated/table_filters.js:512
msgid "Trackable"
msgstr "可追踪"
@@ -1986,10 +1995,10 @@ msgstr "可追踪"
msgid "Parts are trackable by default"
msgstr "商品默认可跟踪"
-#: common/models.py:1056 part/admin.py:43 part/models.py:989
+#: common/models.py:1056 part/admin.py:43 part/models.py:990
#: part/templates/part/part_base.html:156
#: templates/js/translated/table_filters.js:42
-#: templates/js/translated/table_filters.js:512
+#: templates/js/translated/table_filters.js:516
msgid "Virtual"
msgstr "虚拟"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1461 common/models.py:1803
+#: common/models.py:1461 common/models.py:1810
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -2749,41 +2758,50 @@ msgstr ""
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1778
-msgid "Table String Length"
+#: common/models.py:1778 part/templates/part/detail.html:61
+#: templates/js/translated/part.js:822
+msgid "Part Stocktake"
msgstr ""
#: common/models.py:1779
+msgid "Display part stocktake information"
+msgstr ""
+
+#: common/models.py:1785
+msgid "Table String Length"
+msgstr ""
+
+#: common/models.py:1786
msgid "Maximimum length limit for strings displayed in table views"
msgstr ""
-#: common/models.py:1843
+#: common/models.py:1850
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1850 company/serializers.py:393 order/models.py:975
-#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1145
+#: common/models.py:1857 company/serializers.py:393 order/models.py:975
+#: templates/js/translated/company.js:1164 templates/js/translated/part.js:1416
#: templates/js/translated/pricing.js:354
msgid "Price"
msgstr "价格"
-#: common/models.py:1851
+#: common/models.py:1858
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:2011 common/models.py:2189
+#: common/models.py:2018 common/models.py:2196
msgid "Endpoint"
msgstr ""
-#: common/models.py:2012
+#: common/models.py:2019
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2028
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:2026 part/admin.py:36 part/models.py:984
+#: common/models.py:2033 part/admin.py:36 part/models.py:985
#: plugin/models.py:100 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:116
#: templates/js/translated/table_filters.js:336
@@ -2791,131 +2809,133 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:2027
+#: common/models.py:2034
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:2041
+#: common/models.py:2048
msgid "Token"
msgstr "令牌"
-#: common/models.py:2042
+#: common/models.py:2049
msgid "Token for access"
msgstr ""
-#: common/models.py:2049
+#: common/models.py:2056
msgid "Secret"
msgstr ""
-#: common/models.py:2050
+#: common/models.py:2057
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:2156
+#: common/models.py:2163
msgid "Message ID"
msgstr ""
-#: common/models.py:2157
+#: common/models.py:2164
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:2165
+#: common/models.py:2172
msgid "Host"
msgstr ""
-#: common/models.py:2166
+#: common/models.py:2173
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:2173
+#: common/models.py:2180
msgid "Header"
msgstr ""
-#: common/models.py:2174
+#: common/models.py:2181
msgid "Header of this message"
msgstr ""
-#: common/models.py:2180
+#: common/models.py:2187
msgid "Body"
msgstr ""
-#: common/models.py:2181
+#: common/models.py:2188
msgid "Body of this message"
msgstr ""
-#: common/models.py:2190
+#: common/models.py:2197
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2195
+#: common/models.py:2202
msgid "Worked on"
msgstr ""
-#: common/models.py:2196
+#: common/models.py:2203
msgid "Was the work on this message finished?"
msgstr ""
-#: common/models.py:2355
+#: common/models.py:2362
msgid "Id"
msgstr ""
-#: common/models.py:2361 templates/js/translated/news.js:35
+#: common/models.py:2368 templates/js/translated/news.js:35
msgid "Title"
msgstr ""
-#: common/models.py:2371 templates/js/translated/news.js:51
+#: common/models.py:2378 templates/js/translated/news.js:51
msgid "Published"
msgstr ""
-#: common/models.py:2376 templates/InvenTree/settings/plugin.html:62
+#: common/models.py:2383 templates/InvenTree/settings/plugin.html:62
#: templates/InvenTree/settings/plugin_settings.html:33
#: templates/js/translated/news.js:47
msgid "Author"
msgstr ""
-#: common/models.py:2381 templates/js/translated/news.js:43
+#: common/models.py:2388 templates/js/translated/news.js:43
msgid "Summary"
msgstr ""
-#: common/models.py:2386
+#: common/models.py:2393
msgid "Read"
msgstr ""
-#: common/models.py:2387
+#: common/models.py:2394
msgid "Was this news item read?"
msgstr ""
-#: common/notifications.py:293
+#: common/notifications.py:294
#, python-brace-format
msgid "New {verbose_name}"
msgstr ""
-#: common/notifications.py:295
+#: common/notifications.py:296
msgid "A new order has been created and assigned to you"
msgstr ""
-#: common/notifications.py:301
+#: common/notifications.py:302
msgid "Items Received"
msgstr ""
-#: common/notifications.py:303
+#: common/notifications.py:304
msgid "Items have been received against a purchase order"
msgstr ""
-#: common/notifications.py:415
+#: common/notifications.py:416
msgid "Error raised by plugin"
msgstr ""
#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51
#: order/templates/order/purchase_order_detail.html:25 order/views.py:102
-#: part/views.py:107 templates/patterns/wizard/upload.html:37
+#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109
+#: templates/patterns/wizard/upload.html:37
msgid "Upload File"
msgstr "上传文件"
#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:103
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/views.py:108 templates/patterns/wizard/match_fields.html:51
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110
+#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "匹配字段"
@@ -2934,7 +2954,9 @@ msgstr "已导入商品"
#: common/views.py:509 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:49
+#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:56
#: templates/patterns/wizard/match_fields.html:26
#: templates/patterns/wizard/upload.html:35
msgid "Previous Step"
@@ -2995,7 +3017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr "链接到外部公司信息"
-#: company/models.py:140 part/models.py:878
+#: company/models.py:140 part/models.py:879
msgid "Image"
msgstr "图片"
@@ -3028,8 +3050,8 @@ msgid "Does this company manufacture parts?"
msgstr "该公司制造商品吗?"
#: company/models.py:153 company/serializers.py:399
-#: company/templates/company/company_base.html:107 part/models.py:2762
-#: part/serializers.py:154 part/serializers.py:182 stock/serializers.py:182
+#: company/templates/company/company_base.html:107 part/models.py:2780
+#: part/serializers.py:156 part/serializers.py:184 stock/serializers.py:182
#: templates/InvenTree/settings/pricing.html:64
msgid "Currency"
msgstr "货币"
@@ -3055,12 +3077,12 @@ msgstr "选择商品"
#: templates/js/translated/company.js:433
#: templates/js/translated/company.js:534
#: templates/js/translated/company.js:669
-#: templates/js/translated/company.js:957 templates/js/translated/part.js:238
+#: templates/js/translated/company.js:957 templates/js/translated/part.js:241
#: templates/js/translated/table_filters.js:439
msgid "Manufacturer"
msgstr "制造商"
-#: company/models.py:269 templates/js/translated/part.js:239
+#: company/models.py:269 templates/js/translated/part.js:242
msgid "Select manufacturer"
msgstr "选择制造商"
@@ -3070,11 +3092,11 @@ msgstr "选择制造商"
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:685
#: templates/js/translated/company.js:976 templates/js/translated/order.js:2286
-#: templates/js/translated/part.js:249 templates/js/translated/part.js:1067
+#: templates/js/translated/part.js:252 templates/js/translated/part.js:1338
msgid "MPN"
msgstr ""
-#: company/models.py:276 templates/js/translated/part.js:250
+#: company/models.py:276 templates/js/translated/part.js:253
msgid "Manufacturer Part Number"
msgstr "制造商商品编号"
@@ -3100,8 +3122,8 @@ msgstr "参数名称"
#: company/models.py:370
#: report/templates/report/inventree_test_report_base.html:95
#: stock/models.py:2156 templates/js/translated/company.js:582
-#: templates/js/translated/company.js:800 templates/js/translated/part.js:889
-#: templates/js/translated/stock.js:1399
+#: templates/js/translated/company.js:800 templates/js/translated/part.js:1160
+#: templates/js/translated/stock.js:1398
msgid "Value"
msgstr "数值"
@@ -3109,10 +3131,10 @@ msgstr "数值"
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:377 part/admin.py:26 part/models.py:951
-#: part/models.py:3128 part/templates/part/part_base.html:286
-#: templates/InvenTree/settings/settings.html:349
-#: templates/js/translated/company.js:806 templates/js/translated/part.js:895
+#: company/models.py:377 part/admin.py:26 part/models.py:952
+#: part/models.py:3206 part/templates/part/part_base.html:286
+#: templates/InvenTree/settings/settings.html:350
+#: templates/js/translated/company.js:806 templates/js/translated/part.js:1166
msgid "Units"
msgstr "单位"
@@ -3132,24 +3154,24 @@ msgstr ""
#: templates/js/translated/company.js:304
#: templates/js/translated/company.js:437
#: templates/js/translated/company.js:930 templates/js/translated/order.js:2017
-#: templates/js/translated/part.js:219 templates/js/translated/part.js:1035
+#: templates/js/translated/part.js:222 templates/js/translated/part.js:1306
#: templates/js/translated/pricing.js:231
#: templates/js/translated/table_filters.js:443
msgid "Supplier"
msgstr "供应商"
-#: company/models.py:498 templates/js/translated/part.js:220
+#: company/models.py:498 templates/js/translated/part.js:223
msgid "Select supplier"
msgstr "选择供应商"
#: company/models.py:503 company/templates/company/supplier_part.html:146
#: part/bom.py:253 part/bom.py:281 templates/js/translated/company.js:303
-#: templates/js/translated/order.js:2273 templates/js/translated/part.js:230
-#: templates/js/translated/part.js:1053 templates/js/translated/pricing.js:243
+#: templates/js/translated/order.js:2273 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:1324 templates/js/translated/pricing.js:243
msgid "SKU"
msgstr ""
-#: company/models.py:504 templates/js/translated/part.js:231
+#: company/models.py:504 templates/js/translated/part.js:234
msgid "Supplier stock keeping unit"
msgstr ""
@@ -3166,24 +3188,25 @@ msgid "Supplier part description"
msgstr "供应商商品描述"
#: company/models.py:528 company/templates/company/supplier_part.html:181
-#: part/admin.py:225 part/models.py:3381 part/templates/part/upload_bom.html:59
+#: part/admin.py:258 part/models.py:3459 part/templates/part/upload_bom.html:59
+#: report/templates/report/inventree_bill_of_materials_report.html:140
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:397
msgid "Note"
msgstr "备注"
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "base cost"
msgstr ""
-#: company/models.py:532 part/models.py:1861
+#: company/models.py:532 part/models.py:1867
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
#: company/models.py:534 company/templates/company/supplier_part.html:167
#: stock/admin.py:101 stock/models.py:682
#: stock/templates/stock/item_base.html:243
-#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2016
+#: templates/js/translated/company.js:992 templates/js/translated/stock.js:2011
msgid "Packaging"
msgstr "打包"
@@ -3196,7 +3219,7 @@ msgstr "商品打包"
#: templates/js/translated/company.js:997 templates/js/translated/order.js:826
#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1508
#: templates/js/translated/order.js:2317 templates/js/translated/order.js:2334
-#: templates/js/translated/part.js:1085 templates/js/translated/part.js:1137
+#: templates/js/translated/part.js:1356 templates/js/translated/part.js:1408
msgid "Pack Quantity"
msgstr ""
@@ -3204,7 +3227,7 @@ msgstr ""
msgid "Unit quantity supplied in a single pack"
msgstr ""
-#: company/models.py:544 part/models.py:1863
+#: company/models.py:544 part/models.py:1869
msgid "multiple"
msgstr ""
@@ -3216,8 +3239,8 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
#: templates/js/translated/bom.js:1118 templates/js/translated/build.js:1883
-#: templates/js/translated/build.js:2770 templates/js/translated/part.js:623
-#: templates/js/translated/part.js:626
+#: templates/js/translated/build.js:2770 templates/js/translated/part.js:626
+#: templates/js/translated/part.js:629
#: templates/js/translated/table_filters.js:206
msgid "Available"
msgstr "空闲"
@@ -3300,7 +3323,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:399
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:429 templates/js/translated/order.js:2827
-#: templates/js/translated/stock.js:2607
+#: templates/js/translated/stock.js:2602
#: templates/js/translated/table_filters.js:447
msgid "Customer"
msgstr "客户"
@@ -3314,7 +3337,7 @@ msgid "Phone"
msgstr "电话"
#: company/templates/company/company_base.html:206
-#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:525
msgid "Remove Image"
msgstr ""
@@ -3323,19 +3346,19 @@ msgid "Remove associated image from this company"
msgstr ""
#: company/templates/company/company_base.html:209
-#: part/templates/part/part_base.html:514
+#: part/templates/part/part_base.html:528
#: templates/InvenTree/settings/user.html:87
#: templates/InvenTree/settings/user.html:149
msgid "Remove"
msgstr ""
#: company/templates/company/company_base.html:238
-#: part/templates/part/part_base.html:543
+#: part/templates/part/part_base.html:557
msgid "Upload Image"
msgstr "上传图片"
#: company/templates/company/company_base.html:253
-#: part/templates/part/part_base.html:598
+#: part/templates/part/part_base.html:612
msgid "Download Image"
msgstr "下载图片"
@@ -3351,7 +3374,7 @@ msgstr "创建新的供应商商品"
#: company/templates/company/detail.html:19
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:357
+#: part/templates/part/detail.html:380
msgid "New Supplier Part"
msgstr "新建供应商商品"
@@ -3380,7 +3403,7 @@ msgstr "制造商商品"
msgid "Create new manufacturer part"
msgstr "新建制造商商品"
-#: company/templates/company/detail.html:66 part/templates/part/detail.html:387
+#: company/templates/company/detail.html:66 part/templates/part/detail.html:410
msgid "New Manufacturer Part"
msgstr "新建制造商商品"
@@ -3394,9 +3417,9 @@ 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:84 part/templates/part/part_sidebar.html:35
+#: part/templates/part/detail.html:107 part/templates/part/part_sidebar.html:35
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200
-#: templates/InvenTree/settings/sidebar.html:49
+#: templates/InvenTree/settings/sidebar.html:51
#: templates/js/translated/search.js:293 templates/navbar.html:50
#: users/models.py:42
msgid "Purchase Orders"
@@ -3417,9 +3440,9 @@ 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:107 part/templates/part/part_sidebar.html:39
+#: part/templates/part/detail.html:130 part/templates/part/part_sidebar.html:39
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220
-#: templates/InvenTree/settings/sidebar.html:51
+#: templates/InvenTree/settings/sidebar.html:53
#: templates/js/translated/search.js:317 templates/navbar.html:61
#: users/models.py:43
msgid "Sales Orders"
@@ -3451,7 +3474,7 @@ msgstr "制造商"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:221
-#: part/templates/part/detail.html:87 part/templates/part/part_base.html:85
+#: part/templates/part/detail.html:110 part/templates/part/part_base.html:85
msgid "Order part"
msgstr "订购商品"
@@ -3482,28 +3505,28 @@ msgid "Suppliers"
msgstr "供应商"
#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/detail.html:368
+#: part/templates/part/detail.html:391
msgid "Delete supplier parts"
msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:136
#: company/templates/company/manufacturer_part.html:183
-#: part/templates/part/detail.html:369 part/templates/part/detail.html:399
-#: templates/js/translated/forms.js:455 templates/js/translated/helpers.js:38
-#: templates/js/translated/part.js:351 templates/js/translated/stock.js:188
-#: users/models.py:224
+#: part/templates/part/detail.html:392 part/templates/part/detail.html:422
+#: templates/js/translated/forms.js:458 templates/js/translated/helpers.js:38
+#: templates/js/translated/part.js:354 templates/js/translated/stock.js:187
+#: users/models.py:225
msgid "Delete"
msgstr "删除"
#: company/templates/company/manufacturer_part.html:166
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:19
-#: part/templates/part/detail.html:184 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:207 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "参数"
#: company/templates/company/manufacturer_part.html:170
-#: part/templates/part/detail.html:189
+#: part/templates/part/detail.html:212
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:62
msgid "New Parameter"
@@ -3514,7 +3537,7 @@ msgid "Delete parameters"
msgstr "删除参数"
#: company/templates/company/manufacturer_part.html:245
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:865
msgid "Add Parameter"
msgstr "添加参数"
@@ -3538,7 +3561,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:24 stock/models.py:665
#: stock/templates/stock/item_base.html:236
#: templates/js/translated/company.js:946 templates/js/translated/order.js:1173
-#: templates/js/translated/stock.js:1974
+#: templates/js/translated/stock.js:1969
msgid "Supplier Part"
msgstr "供应商商品"
@@ -3578,7 +3601,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:56
#: company/templates/company/supplier_part.html:57
#: company/templates/company/supplier_part.html:222
-#: part/templates/part/detail.html:88
+#: part/templates/part/detail.html:111
msgid "Order Part"
msgstr "订购商品"
@@ -3630,7 +3653,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:204
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198
-#: templates/js/translated/stock.js:467
+#: templates/js/translated/stock.js:466
msgid "New Stock Item"
msgstr ""
@@ -3662,10 +3685,10 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:153
-#: templates/InvenTree/settings/sidebar.html:45
-#: templates/js/translated/part.js:777 templates/js/translated/part.js:1378
-#: templates/js/translated/part.js:1534 templates/js/translated/stock.js:994
-#: templates/js/translated/stock.js:1799 templates/navbar.html:31
+#: templates/InvenTree/settings/sidebar.html:47
+#: templates/js/translated/part.js:1048 templates/js/translated/part.js:1649
+#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:993
+#: templates/js/translated/stock.js:1794 templates/navbar.html:31
msgid "Stock"
msgstr "库存"
@@ -3680,7 +3703,7 @@ msgstr "供应商商品价格"
#: company/templates/company/supplier_part_navbar.html:29
#: part/templates/part/part_sidebar.html:30
-#: templates/InvenTree/settings/sidebar.html:35
+#: templates/InvenTree/settings/sidebar.html:37
msgid "Pricing"
msgstr "定价"
@@ -3692,7 +3715,7 @@ msgstr "定价"
#: stock/templates/stock/location.html:194
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:155 templates/js/translated/search.js:225
-#: templates/js/translated/stock.js:2484 users/models.py:40
+#: templates/js/translated/stock.js:2479 users/models.py:40
msgid "Stock Items"
msgstr "库存项"
@@ -3801,9 +3824,9 @@ msgstr ""
#: stock/templates/stock/item_base.html:182
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:619 templates/js/translated/order.js:1174
-#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1012
-#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1954
-#: templates/js/translated/stock.js:2588
+#: templates/js/translated/order.js:2001 templates/js/translated/part.js:1283
+#: templates/js/translated/pricing.js:515 templates/js/translated/stock.js:1949
+#: templates/js/translated/stock.js:2583
msgid "Purchase Order"
msgstr ""
@@ -3973,7 +3996,7 @@ msgstr "供应商商品"
#: order/models.py:1046 order/templates/order/order_base.html:178
#: templates/js/translated/order.js:1679 templates/js/translated/order.js:2404
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1400 templates/js/translated/part.js:1432
#: templates/js/translated/table_filters.js:358
msgid "Received"
msgstr ""
@@ -3984,7 +4007,7 @@ msgstr ""
#: order/models.py:1054 stock/models.py:800 stock/serializers.py:173
#: stock/templates/stock/item_base.html:189
-#: templates/js/translated/stock.js:2005
+#: templates/js/translated/stock.js:2000
msgid "Purchase Price"
msgstr "采购价格"
@@ -4350,18 +4373,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:9
#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
#: templates/patterns/wizard/match_fields.html:8
msgid "Missing selections for the following required columns"
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:20
#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
#: templates/patterns/wizard/match_fields.html:19
msgid "Duplicate selections found, see below. Fix them then retry submitting."
msgstr ""
#: order/templates/order/order_wizard/match_fields.html:29
#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
#: part/templates/part/import_wizard/match_references.html:21
#: templates/patterns/wizard/match_fields.html:28
msgid "Submit Selections"
@@ -4369,18 +4395,21 @@ msgstr ""
#: order/templates/order/order_wizard/match_fields.html:35
#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
#: templates/patterns/wizard/match_fields.html:34
msgid "File Fields"
msgstr "文件字段"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
#: templates/patterns/wizard/match_fields.html:41
msgid "Remove column"
msgstr "移除列"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
#: templates/patterns/wizard/match_fields.html:59
msgid "Duplicate selection"
msgstr ""
@@ -4389,12 +4418,13 @@ msgstr ""
#: order/templates/order/order_wizard/match_parts.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:64
#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/bom.js:102 templates/js/translated/build.js:485
#: templates/js/translated/build.js:641 templates/js/translated/build.js:2088
#: templates/js/translated/order.js:1122 templates/js/translated/order.js:1624
-#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:657
-#: templates/js/translated/stock.js:825
+#: templates/js/translated/order.js:3111 templates/js/translated/stock.js:656
+#: templates/js/translated/stock.js:824
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "移除行"
@@ -4429,6 +4459,7 @@ msgstr ""
#: order/templates/order/order_wizard/po_upload.html:27
#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:26
#: templates/patterns/wizard/upload.html:13
#, python-format
msgid "Step %(step)s of %(count)s"
@@ -4567,12 +4598,12 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/admin.py:19 part/admin.py:219 part/models.py:3262 stock/admin.py:84
+#: part/admin.py:19 part/admin.py:252 part/models.py:3340 stock/admin.py:84
#: templates/js/translated/model_renderers.js:212
msgid "Part ID"
msgstr "商品ID"
-#: part/admin.py:20 part/admin.py:221 part/models.py:3266 stock/admin.py:85
+#: part/admin.py:20 part/admin.py:254 part/models.py:3344 stock/admin.py:85
msgid "Part Name"
msgstr ""
@@ -4580,32 +4611,32 @@ msgstr ""
msgid "Part Description"
msgstr ""
-#: part/admin.py:22 part/models.py:852 part/templates/part/part_base.html:272
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1491
-#: templates/js/translated/stock.js:1765
+#: part/admin.py:22 part/models.py:853 part/templates/part/part_base.html:272
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:1762
+#: templates/js/translated/stock.js:1760
msgid "IPN"
msgstr ""
-#: part/admin.py:23 part/models.py:860 part/templates/part/part_base.html:279
-#: report/models.py:171 templates/js/translated/part.js:768
+#: part/admin.py:23 part/models.py:861 part/templates/part/part_base.html:279
+#: report/models.py:171 templates/js/translated/part.js:1039
msgid "Revision"
msgstr ""
-#: part/admin.py:24 part/admin.py:145 part/models.py:838
+#: part/admin.py:24 part/admin.py:178 part/models.py:839
#: part/templates/part/category.html:87 part/templates/part/part_base.html:300
msgid "Keywords"
msgstr "关键词"
-#: part/admin.py:28 part/admin.py:139
+#: part/admin.py:28 part/admin.py:172
#: templates/js/translated/model_renderers.js:338
msgid "Category ID"
msgstr "类别 ID"
-#: part/admin.py:29 part/admin.py:140
+#: part/admin.py:29 part/admin.py:173
msgid "Category Name"
msgstr ""
-#: part/admin.py:30 part/admin.py:144
+#: part/admin.py:30 part/admin.py:177
msgid "Default Location ID"
msgstr ""
@@ -4613,7 +4644,7 @@ msgstr ""
msgid "Default Supplier ID"
msgstr ""
-#: part/admin.py:33 part/models.py:944 part/templates/part/part_base.html:206
+#: part/admin.py:33 part/models.py:945 part/templates/part/part_base.html:206
msgid "Minimum Stock"
msgstr "最低库存"
@@ -4625,8 +4656,8 @@ msgstr ""
#: part/admin.py:48 part/bom.py:145 part/templates/part/part_base.html:213
#: templates/js/translated/bom.js:1156 templates/js/translated/build.js:1935
-#: templates/js/translated/part.js:613 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:1381 templates/js/translated/part.js:1559
+#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
+#: templates/js/translated/part.js:1652 templates/js/translated/part.js:1830
#: templates/js/translated/table_filters.js:68
msgid "On Order"
msgstr ""
@@ -4642,115 +4673,115 @@ msgid "Allocated"
msgstr ""
#: part/admin.py:51 part/templates/part/part_base.html:244
-#: templates/js/translated/part.js:616 templates/js/translated/part.js:636
-#: templates/js/translated/part.js:1385 templates/js/translated/part.js:1566
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:639
+#: templates/js/translated/part.js:1656 templates/js/translated/part.js:1837
msgid "Building"
msgstr ""
-#: part/admin.py:52 part/models.py:2846
+#: part/admin.py:52 part/models.py:2864
msgid "Minimum Cost"
msgstr ""
-#: part/admin.py:53 part/models.py:2852
+#: part/admin.py:53 part/models.py:2870
msgid "Maximum Cost"
msgstr ""
-#: part/admin.py:142 part/admin.py:216 stock/admin.py:26 stock/admin.py:98
+#: part/admin.py:175 part/admin.py:249 stock/admin.py:26 stock/admin.py:98
msgid "Parent ID"
msgstr ""
-#: part/admin.py:143 part/admin.py:218 stock/admin.py:27
+#: part/admin.py:176 part/admin.py:251 stock/admin.py:27
msgid "Parent Name"
msgstr ""
-#: part/admin.py:146 part/templates/part/category.html:81
+#: part/admin.py:179 part/templates/part/category.html:81
#: part/templates/part/category.html:94
msgid "Category Path"
msgstr "类别路径"
-#: part/admin.py:149 part/models.py:382 part/templates/part/cat_link.html:3
+#: part/admin.py:182 part/models.py:383 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:23 part/templates/part/category.html:134
#: part/templates/part/category.html:154
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84
-#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:2065 templates/js/translated/search.js:146
+#: templates/InvenTree/settings/sidebar.html:43
+#: templates/js/translated/part.js:2346 templates/js/translated/search.js:146
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr "商品"
-#: part/admin.py:211
+#: part/admin.py:244
msgid "BOM Level"
msgstr ""
-#: part/admin.py:213
+#: part/admin.py:246
msgid "BOM Item ID"
msgstr ""
-#: part/admin.py:217
+#: part/admin.py:250
msgid "Parent IPN"
msgstr ""
-#: part/admin.py:220 part/models.py:3270
+#: part/admin.py:253 part/models.py:3348
msgid "Part IPN"
msgstr ""
-#: part/admin.py:226 templates/js/translated/pricing.js:91
+#: part/admin.py:259 templates/js/translated/pricing.js:91
#: templates/js/translated/pricing.js:732
msgid "Minimum Price"
msgstr ""
-#: part/admin.py:227 templates/js/translated/pricing.js:86
+#: part/admin.py:260 templates/js/translated/pricing.js:86
#: templates/js/translated/pricing.js:740
msgid "Maximum Price"
msgstr ""
-#: part/api.py:536
+#: part/api.py:538
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:556
+#: part/api.py:558
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:574
+#: part/api.py:576
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:660
+#: part/api.py:662
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:818
+#: part/api.py:820
msgid "Valid"
msgstr ""
-#: part/api.py:819
+#: part/api.py:821
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:825
+#: part/api.py:827
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1265
+#: part/api.py:1281
msgid "Must be greater than zero"
msgstr "必须大于0"
-#: part/api.py:1269
+#: part/api.py:1285
msgid "Must be a valid quantity"
msgstr "必须是有效的数量"
-#: part/api.py:1284
+#: part/api.py:1300
msgid "Specify location for initial part stock"
msgstr "指定初始初始商品仓储地点"
-#: part/api.py:1315 part/api.py:1319 part/api.py:1334 part/api.py:1338
+#: part/api.py:1331 part/api.py:1335 part/api.py:1350 part/api.py:1354
msgid "This field is required"
msgstr "此字段为必填"
-#: part/bom.py:142 part/models.py:116 part/models.py:887
-#: part/templates/part/category.html:109 part/templates/part/part_base.html:360
+#: part/bom.py:142 part/models.py:116 part/models.py:888
+#: part/templates/part/category.html:109 part/templates/part/part_base.html:374
msgid "Default Location"
msgstr "默认仓储地点"
@@ -4801,7 +4832,7 @@ msgstr ""
msgid "You cannot make this part category structural because some parts are already assigned to it!"
msgstr ""
-#: part/models.py:159 part/models.py:3211 part/templates/part/category.html:16
+#: part/models.py:159 part/models.py:3289 part/templates/part/category.html:16
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
@@ -4812,423 +4843,459 @@ msgstr "商品类别"
msgid "Part Categories"
msgstr "商品类别"
-#: part/models.py:468
+#: part/models.py:469
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:538 part/models.py:550
+#: part/models.py:539 part/models.py:551
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:640
+#: part/models.py:641
msgid "Stock item with this serial number already exists"
msgstr ""
-#: part/models.py:771
+#: part/models.py:772
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:776
+#: part/models.py:777
msgid "Part with this Name, IPN and Revision already exists."
msgstr ""
-#: part/models.py:790
+#: part/models.py:791
msgid "Parts cannot be assigned to structural part categories!"
msgstr ""
-#: part/models.py:808 part/models.py:3267
+#: part/models.py:809 part/models.py:3345
msgid "Part name"
msgstr "商品名称"
-#: part/models.py:815
+#: part/models.py:816
msgid "Is Template"
msgstr ""
-#: part/models.py:816
+#: part/models.py:817
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:826
+#: part/models.py:827
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:827
+#: part/models.py:828
msgid "Variant Of"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Part description"
msgstr "商品描述"
-#: part/models.py:839
+#: part/models.py:840
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:846 part/models.py:2966 part/models.py:3210
+#: part/models.py:847 part/models.py:3044 part/models.py:3288
#: part/templates/part/part_base.html:263
-#: templates/InvenTree/settings/settings.html:229
+#: templates/InvenTree/settings/settings.html:230
#: templates/js/translated/notification.js:50
-#: templates/js/translated/part.js:1513 templates/js/translated/part.js:1770
+#: templates/js/translated/part.js:1784 templates/js/translated/part.js:2051
msgid "Category"
msgstr "类别"
-#: part/models.py:847
+#: part/models.py:848
msgid "Part category"
msgstr "商品类别"
-#: part/models.py:853
+#: part/models.py:854
msgid "Internal Part Number"
msgstr "内部商品编号"
-#: part/models.py:859
+#: part/models.py:860
msgid "Part revision or version number"
msgstr "商品版本号"
-#: part/models.py:885
+#: part/models.py:886
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:930 part/templates/part/part_base.html:369
+#: part/models.py:931 part/templates/part/part_base.html:383
msgid "Default Supplier"
msgstr ""
-#: part/models.py:931
+#: part/models.py:932
msgid "Default supplier part"
msgstr "默认供应商商品"
-#: part/models.py:938
+#: part/models.py:939
msgid "Default Expiry"
msgstr ""
-#: part/models.py:939
+#: part/models.py:940
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:945
+#: part/models.py:946
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:952
+#: part/models.py:953
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:958
+#: part/models.py:959
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:964
+#: part/models.py:965
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:970
+#: part/models.py:971
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:975
+#: part/models.py:976
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:980
+#: part/models.py:981
msgid "Can this part be sold to customers?"
msgstr "此商品可以销售给客户吗?"
-#: part/models.py:985
+#: part/models.py:986
msgid "Is this part active?"
msgstr ""
-#: part/models.py:990
+#: part/models.py:991
msgid "Is this a virtual part, such as a software product or license?"
msgstr "这是一个虚拟商品,如软件产品或许可证吗?"
-#: part/models.py:992
+#: part/models.py:993
msgid "Part notes"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "BOM checksum"
msgstr ""
-#: part/models.py:994
+#: part/models.py:995
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:997
+#: part/models.py:998
msgid "BOM checked by"
msgstr ""
-#: part/models.py:999
+#: part/models.py:1000
msgid "BOM checked date"
msgstr ""
-#: part/models.py:1003
+#: part/models.py:1004
msgid "Creation User"
msgstr "新建用户"
-#: part/models.py:1863
+#: part/models.py:1010 part/templates/part/part_base.html:345
+#: stock/templates/stock/item_base.html:445
+#: templates/js/translated/part.js:1901
+msgid "Last Stocktake"
+msgstr ""
+
+#: part/models.py:1869
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2763
+#: part/models.py:2781
msgid "Currency used to cache pricing calculations"
msgstr ""
-#: part/models.py:2768
+#: part/models.py:2786 templates/js/translated/part.js:806
msgid "Updated"
msgstr ""
-#: part/models.py:2769
+#: part/models.py:2787
msgid "Timestamp of last pricing update"
msgstr ""
-#: part/models.py:2786
+#: part/models.py:2804
msgid "Minimum BOM Cost"
msgstr ""
-#: part/models.py:2787
+#: part/models.py:2805
msgid "Minimum cost of component parts"
msgstr ""
-#: part/models.py:2792
+#: part/models.py:2810
msgid "Maximum BOM Cost"
msgstr ""
-#: part/models.py:2793
+#: part/models.py:2811
msgid "Maximum cost of component parts"
msgstr ""
-#: part/models.py:2798
+#: part/models.py:2816
msgid "Minimum Purchase Cost"
msgstr ""
-#: part/models.py:2799
+#: part/models.py:2817
msgid "Minimum historical purchase cost"
msgstr ""
-#: part/models.py:2804
+#: part/models.py:2822
msgid "Maximum Purchase Cost"
msgstr ""
-#: part/models.py:2805
+#: part/models.py:2823
msgid "Maximum historical purchase cost"
msgstr ""
-#: part/models.py:2810
+#: part/models.py:2828
msgid "Minimum Internal Price"
msgstr ""
-#: part/models.py:2811
+#: part/models.py:2829
msgid "Minimum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2816
+#: part/models.py:2834
msgid "Maximum Internal Price"
msgstr ""
-#: part/models.py:2817
+#: part/models.py:2835
msgid "Maximum cost based on internal price breaks"
msgstr ""
-#: part/models.py:2822
+#: part/models.py:2840
msgid "Minimum Supplier Price"
msgstr ""
-#: part/models.py:2823
+#: part/models.py:2841
msgid "Minimum price of part from external suppliers"
msgstr ""
-#: part/models.py:2828
+#: part/models.py:2846
msgid "Maximum Supplier Price"
msgstr ""
-#: part/models.py:2829
+#: part/models.py:2847
msgid "Maximum price of part from external suppliers"
msgstr ""
-#: part/models.py:2834
+#: part/models.py:2852
msgid "Minimum Variant Cost"
msgstr ""
-#: part/models.py:2835
+#: part/models.py:2853
msgid "Calculated minimum cost of variant parts"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2858
msgid "Maximum Variant Cost"
msgstr ""
-#: part/models.py:2841
+#: part/models.py:2859
msgid "Calculated maximum cost of variant parts"
msgstr ""
-#: part/models.py:2847
+#: part/models.py:2865
msgid "Calculated overall minimum cost"
msgstr ""
-#: part/models.py:2853
+#: part/models.py:2871
msgid "Calculated overall maximum cost"
msgstr ""
-#: part/models.py:2858
+#: part/models.py:2876
msgid "Minimum Sale Price"
msgstr ""
-#: part/models.py:2859
+#: part/models.py:2877
msgid "Minimum sale price based on price breaks"
msgstr ""
-#: part/models.py:2864
+#: part/models.py:2882
msgid "Maximum Sale Price"
msgstr ""
-#: part/models.py:2865
+#: part/models.py:2883
msgid "Maximum sale price based on price breaks"
msgstr ""
-#: part/models.py:2870
+#: part/models.py:2888
msgid "Minimum Sale Cost"
msgstr ""
-#: part/models.py:2871
+#: part/models.py:2889
msgid "Minimum historical sale price"
msgstr ""
-#: part/models.py:2876
+#: part/models.py:2894
msgid "Maximum Sale Cost"
msgstr ""
-#: part/models.py:2877
+#: part/models.py:2895
msgid "Maximum historical sale price"
msgstr ""
-#: part/models.py:3013
+#: part/models.py:2913
+msgid "Part for stocktake"
+msgstr ""
+
+#: part/models.py:2920
+msgid "Total available stock at time of stocktake"
+msgstr ""
+
+#: part/models.py:2924 part/templates/part/part_scheduling.html:13
+#: report/templates/report/inventree_test_report_base.html:97
+#: templates/InvenTree/settings/plugin.html:63
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:2043 templates/js/translated/part.js:887
+#: templates/js/translated/pricing.js:537
+#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2511
+msgid "Date"
+msgstr ""
+
+#: part/models.py:2925
+msgid "Date stocktake was performed"
+msgstr ""
+
+#: part/models.py:2933
+msgid "Additional notes"
+msgstr ""
+
+#: part/models.py:2941
+msgid "User who performed this stocktake"
+msgstr ""
+
+#: part/models.py:3091
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:3030
+#: part/models.py:3108
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:3050 templates/js/translated/part.js:2116
-#: templates/js/translated/stock.js:1379
+#: part/models.py:3128 templates/js/translated/part.js:2397
+#: templates/js/translated/stock.js:1378
msgid "Test Name"
msgstr ""
-#: part/models.py:3051
+#: part/models.py:3129
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:3056
+#: part/models.py:3134
msgid "Test Description"
msgstr ""
-#: part/models.py:3057
+#: part/models.py:3135
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:3062 templates/js/translated/part.js:2125
+#: part/models.py:3140 templates/js/translated/part.js:2406
#: templates/js/translated/table_filters.js:322
msgid "Required"
msgstr ""
-#: part/models.py:3063
+#: part/models.py:3141
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:3068 templates/js/translated/part.js:2133
+#: part/models.py:3146 templates/js/translated/part.js:2414
msgid "Requires Value"
msgstr ""
-#: part/models.py:3069
+#: part/models.py:3147
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:3074 templates/js/translated/part.js:2140
+#: part/models.py:3152 templates/js/translated/part.js:2421
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:3075
+#: part/models.py:3153
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:3116
+#: part/models.py:3194
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:3124
+#: part/models.py:3202
msgid "Parameter Name"
msgstr ""
-#: part/models.py:3128
+#: part/models.py:3206
msgid "Parameter Units"
msgstr ""
-#: part/models.py:3133
+#: part/models.py:3211
msgid "Parameter description"
msgstr ""
-#: part/models.py:3166
+#: part/models.py:3244
msgid "Parent Part"
msgstr ""
-#: part/models.py:3168 part/models.py:3216 part/models.py:3217
-#: templates/InvenTree/settings/settings.html:224
+#: part/models.py:3246 part/models.py:3294 part/models.py:3295
+#: templates/InvenTree/settings/settings.html:225
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Data"
msgstr ""
-#: part/models.py:3170
+#: part/models.py:3248
msgid "Parameter Value"
msgstr ""
-#: part/models.py:3221 templates/InvenTree/settings/settings.html:233
+#: part/models.py:3299 templates/InvenTree/settings/settings.html:234
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:3222
+#: part/models.py:3300
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:3259
+#: part/models.py:3337
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:3263
+#: part/models.py:3341
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:3271
+#: part/models.py:3349
msgid "Part IPN value"
msgstr ""
-#: part/models.py:3274
+#: part/models.py:3352
msgid "Level"
msgstr ""
-#: part/models.py:3275
+#: part/models.py:3353
msgid "BOM level"
msgstr ""
-#: part/models.py:3344
+#: part/models.py:3422
msgid "Select parent part"
msgstr ""
-#: part/models.py:3352
+#: part/models.py:3430
msgid "Sub part"
msgstr ""
-#: part/models.py:3353
+#: part/models.py:3431
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:3359
+#: part/models.py:3437
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:3363 part/templates/part/upload_bom.html:58
+#: part/models.py:3441 part/templates/part/upload_bom.html:58
#: templates/js/translated/bom.js:933 templates/js/translated/bom.js:986
#: templates/js/translated/build.js:1868
#: templates/js/translated/table_filters.js:84
@@ -5236,189 +5303,189 @@ msgstr ""
msgid "Optional"
msgstr "可选项"
-#: part/models.py:3364
+#: part/models.py:3442
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:3369 templates/js/translated/bom.js:929
+#: part/models.py:3447 templates/js/translated/bom.js:929
#: templates/js/translated/bom.js:995 templates/js/translated/build.js:1859
#: templates/js/translated/table_filters.js:88
msgid "Consumable"
msgstr ""
-#: part/models.py:3370
+#: part/models.py:3448
msgid "This BOM item is consumable (it is not tracked in build orders)"
msgstr ""
-#: part/models.py:3374 part/templates/part/upload_bom.html:55
+#: part/models.py:3452 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:3375
+#: part/models.py:3453
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:3378
+#: part/models.py:3456
msgid "BOM item reference"
msgstr ""
-#: part/models.py:3381
+#: part/models.py:3459
msgid "BOM item notes"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "Checksum"
msgstr ""
-#: part/models.py:3383
+#: part/models.py:3461
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:3387 part/templates/part/upload_bom.html:57
+#: part/models.py:3465 part/templates/part/upload_bom.html:57
#: templates/js/translated/bom.js:1012
#: templates/js/translated/table_filters.js:76
#: templates/js/translated/table_filters.js:108
msgid "Inherited"
msgstr "继承项"
-#: part/models.py:3388
+#: part/models.py:3466
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:3393 part/templates/part/upload_bom.html:56
+#: part/models.py:3471 part/templates/part/upload_bom.html:56
#: templates/js/translated/bom.js:1004
msgid "Allow Variants"
msgstr ""
-#: part/models.py:3394
+#: part/models.py:3472
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:3480 stock/models.py:558
+#: part/models.py:3558 stock/models.py:558
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:3489 part/models.py:3491
+#: part/models.py:3567 part/models.py:3569
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:3618
+#: part/models.py:3696
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:3639
+#: part/models.py:3717
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:3652
+#: part/models.py:3730
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:3660
+#: part/models.py:3738
msgid "Substitute part"
msgstr ""
-#: part/models.py:3675
+#: part/models.py:3753
msgid "Part 1"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Part 2"
msgstr ""
-#: part/models.py:3679
+#: part/models.py:3757
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3697
+#: part/models.py:3775
msgid "Part relationship cannot be created between a part and itself"
msgstr ""
-#: part/models.py:3701
+#: part/models.py:3779
msgid "Duplicate relationship already exists"
msgstr ""
-#: part/serializers.py:155 part/serializers.py:183 stock/serializers.py:183
+#: part/serializers.py:157 part/serializers.py:185 stock/serializers.py:183
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:543
+#: part/serializers.py:584
msgid "Update"
msgstr ""
-#: part/serializers.py:544
+#: part/serializers.py:585
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:854
+#: part/serializers.py:895
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:862
+#: part/serializers.py:903
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:863
+#: part/serializers.py:904
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:868
+#: part/serializers.py:909
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:869
+#: part/serializers.py:910
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:915
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:875
+#: part/serializers.py:916
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:880
+#: part/serializers.py:921
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:922
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
-#: part/serializers.py:921
+#: part/serializers.py:962
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:922
+#: part/serializers.py:963
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:952
+#: part/serializers.py:993
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:995
+#: part/serializers.py:1036
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:998
+#: part/serializers.py:1039
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1042
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:1010
+#: part/serializers.py:1051
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:1018
+#: part/serializers.py:1059
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:1039
+#: part/serializers.py:1080
msgid "At least one BOM item is required"
msgstr ""
@@ -5450,7 +5517,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:267
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:290
msgid "BOM actions"
msgstr ""
@@ -5507,8 +5574,8 @@ msgstr "新建商品"
msgid "New Part"
msgstr "新商品"
-#: part/templates/part/category.html:169 part/templates/part/detail.html:366
-#: part/templates/part/detail.html:397
+#: part/templates/part/category.html:169 part/templates/part/detail.html:389
+#: part/templates/part/detail.html:420
msgid "Options"
msgstr "选项"
@@ -5556,7 +5623,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:404
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:407
msgid "Duplicate Part"
msgstr "复制部件"
@@ -5593,118 +5660,128 @@ msgstr ""
msgid "Refresh"
msgstr ""
-#: part/templates/part/detail.html:59
+#: part/templates/part/detail.html:65
+msgid "Add stocktake information"
+msgstr ""
+
+#: part/templates/part/detail.html:66 part/templates/part/part_sidebar.html:49
+#: stock/admin.py:107 templates/js/translated/stock.js:1905
+msgid "Stocktake"
+msgstr ""
+
+#: part/templates/part/detail.html:82
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:64
+#: part/templates/part/detail.html:87
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:121 stock/templates/stock/item.html:53
+#: part/templates/part/detail.html:144 stock/templates/stock/item.html:53
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:141
+#: part/templates/part/detail.html:164
msgid "Part Notes"
msgstr ""
-#: part/templates/part/detail.html:156
+#: part/templates/part/detail.html:179
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:160
+#: part/templates/part/detail.html:183
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:184
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:211
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:225 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:57
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:229 part/templates/part/detail.html:230
+#: part/templates/part/detail.html:252 part/templates/part/detail.html:253
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:250 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:273 part/templates/part/part_sidebar.html:17
+#: report/templates/report/inventree_bill_of_materials_report.html:100
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:255
+#: part/templates/part/detail.html:278
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/bom.js:309
+#: part/templates/part/detail.html:282 templates/js/translated/bom.js:309
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:284
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:271
+#: part/templates/part/detail.html:294
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:272 templates/js/translated/part.js:276
+#: part/templates/part/detail.html:295 templates/js/translated/part.js:279
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:296
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:278 part/templates/part/detail.html:279
+#: part/templates/part/detail.html:301 part/templates/part/detail.html:302
#: templates/js/translated/bom.js:1268 templates/js/translated/bom.js:1269
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:315
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:310
+#: part/templates/part/detail.html:333
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:337 stock/templates/stock/item.html:38
+#: part/templates/part/detail.html:360 stock/templates/stock/item.html:38
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:353
+#: part/templates/part/detail.html:376
msgid "Part Suppliers"
msgstr "商品供应商"
-#: part/templates/part/detail.html:383
+#: part/templates/part/detail.html:406
msgid "Part Manufacturers"
msgstr "商品制造商"
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:422
msgid "Delete manufacturer parts"
msgstr "删除制造商商品"
-#: part/templates/part/detail.html:656
+#: part/templates/part/detail.html:696
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:664
+#: part/templates/part/detail.html:704
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:756
+#: part/templates/part/detail.html:796
msgid "Add Test Result Template"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
#: part/templates/part/import_wizard/part_upload.html:14
-msgid "Unsuffitient privileges."
+msgid "Insufficient privileges."
msgstr ""
#: part/templates/part/import_wizard/part_upload.html:8
@@ -5715,6 +5792,34 @@ msgstr ""
msgid "Import Parts from File"
msgstr "从文件导入商品"
+#: part/templates/part/import_wizard/part_upload.html:31
+msgid "Requirements for part import"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "The part import file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:33
+msgid "Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:89
+msgid "Download Part Import Template"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:92
+#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
+#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
+msgid "Format"
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:93
+#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
+#: templates/js/translated/order.js:999
+msgid "Select file format"
+msgstr ""
+
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "商品列表"
@@ -5804,12 +5909,12 @@ msgstr "商品是虚拟的(不是实体零件)"
#: templates/js/translated/company.js:660
#: templates/js/translated/company.js:921
#: templates/js/translated/model_renderers.js:204
-#: templates/js/translated/part.js:677 templates/js/translated/part.js:755
+#: templates/js/translated/part.js:680 templates/js/translated/part.js:1026
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:165
-#: part/templates/part/part_base.html:666
+#: part/templates/part/part_base.html:680
msgid "Show Part Details"
msgstr ""
@@ -5837,38 +5942,38 @@ msgid "Minimum stock level"
msgstr ""
#: part/templates/part/part_base.html:330 templates/js/translated/bom.js:1032
-#: templates/js/translated/part.js:798 templates/js/translated/part.js:1604
+#: templates/js/translated/part.js:1069 templates/js/translated/part.js:1875
#: templates/js/translated/pricing.js:124
#: templates/js/translated/pricing.js:762
msgid "Price Range"
msgstr ""
-#: part/templates/part/part_base.html:345
+#: part/templates/part/part_base.html:359
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:349
+#: part/templates/part/part_base.html:363
#: stock/templates/stock/item_base.html:331
msgid "Search for serial number"
msgstr ""
-#: part/templates/part/part_base.html:449
+#: part/templates/part/part_base.html:463
msgid "Link Barcode to Part"
msgstr ""
-#: part/templates/part/part_base.html:495
+#: part/templates/part/part_base.html:509
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:512
+#: part/templates/part/part_base.html:526
msgid "Remove associated image from this part"
msgstr ""
-#: part/templates/part/part_base.html:564
+#: part/templates/part/part_base.html:578
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:660
+#: part/templates/part/part_base.html:674
msgid "Hide Part Details"
msgstr ""
@@ -5920,15 +6025,6 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr "此商品无价格信息可用。"
-#: part/templates/part/part_scheduling.html:13
-#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:63
-#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:2043 templates/js/translated/pricing.js:537
-#: templates/js/translated/pricing.js:658 templates/js/translated/stock.js:2516
-msgid "Date"
-msgstr ""
-
#: part/templates/part/part_scheduling.html:14
msgid "Scheduled Quantity"
msgstr ""
@@ -5941,7 +6037,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: part/templates/part/part_sidebar.html:48
+#: part/templates/part/part_sidebar.html:53
msgid "Test Templates"
msgstr ""
@@ -5960,7 +6056,7 @@ msgstr ""
#: part/templates/part/prices.html:25 stock/admin.py:106
#: stock/templates/stock/item_base.html:440
#: templates/js/translated/company.js:1039
-#: templates/js/translated/stock.js:1940
+#: templates/js/translated/stock.js:1935
msgid "Last Updated"
msgstr ""
@@ -6023,8 +6119,8 @@ msgstr ""
msgid "Add Sell Price Break"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:639
-#: templates/js/translated/part.js:1373 templates/js/translated/part.js:1375
+#: part/templates/part/stock_count.html:7 templates/js/translated/part.js:642
+#: templates/js/translated/part.js:1644 templates/js/translated/part.js:1646
msgid "No Stock"
msgstr ""
@@ -6087,27 +6183,32 @@ msgstr ""
msgid "{title} v{version}"
msgstr ""
-#: part/views.py:109
+#: part/views.py:111
msgid "Match References"
msgstr ""
-#: part/views.py:354
+#: part/views.py:239
+#, python-brace-format
+msgid "Can't import part {name} because there is no category assigned"
+msgstr ""
+
+#: part/views.py:378
msgid "Part QR Code"
msgstr "商品二维码"
-#: part/views.py:372
+#: part/views.py:396
msgid "Select Part Image"
msgstr "选择商品图像"
-#: part/views.py:398
+#: part/views.py:422
msgid "Updated part image"
msgstr "更新商品图像"
-#: part/views.py:401
+#: part/views.py:425
msgid "Part image not found"
msgstr "未找到商品图像"
-#: part/views.py:493
+#: part/views.py:517
msgid "Part Pricing"
msgstr "商品价格"
@@ -6156,28 +6257,48 @@ msgid "Provides native support for barcodes"
msgstr ""
#: plugin/builtin/barcodes/inventree_barcode.py:29
-#: plugin/builtin/integration/core_notifications.py:31
+#: plugin/builtin/integration/core_notifications.py:33
msgid "InvenTree contributors"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:30
+#: plugin/builtin/integration/core_notifications.py:32
msgid "InvenTree Notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:32
+#: plugin/builtin/integration/core_notifications.py:34
msgid "Integrated outgoing notificaton methods"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:37
-#: plugin/builtin/integration/core_notifications.py:56
+#: plugin/builtin/integration/core_notifications.py:39
+#: plugin/builtin/integration/core_notifications.py:80
msgid "Enable email notifications"
msgstr ""
-#: plugin/builtin/integration/core_notifications.py:38
-#: plugin/builtin/integration/core_notifications.py:57
+#: plugin/builtin/integration/core_notifications.py:40
+#: plugin/builtin/integration/core_notifications.py:81
msgid "Allow sending of emails for event notifications"
msgstr ""
+#: plugin/builtin/integration/core_notifications.py:45
+msgid "Enable slack notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:46
+msgid "Allow sending of slack channel messages for event notifications"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:51
+msgid "Slack incoming webhook url"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:52
+msgid "URL that is used to send messages to a slack channel"
+msgstr ""
+
+#: plugin/builtin/integration/core_notifications.py:162
+msgid "Open link"
+msgstr ""
+
#: plugin/models.py:33
msgid "Plugin Metadata"
msgstr ""
@@ -6409,6 +6530,10 @@ msgstr ""
msgid "Asset file description"
msgstr ""
+#: report/templates/report/inventree_bill_of_materials_report.html:133
+msgid "Materials needed"
+msgstr ""
+
#: report/templates/report/inventree_build_order_base.html:146
msgid "Required For"
msgstr ""
@@ -6427,7 +6552,7 @@ msgstr ""
#: templates/js/translated/build.js:1244 templates/js/translated/build.js:1745
#: templates/js/translated/model_renderers.js:118
#: templates/js/translated/order.js:121 templates/js/translated/order.js:3611
-#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:522
+#: templates/js/translated/order.js:3698 templates/js/translated/stock.js:521
msgid "Serial Number"
msgstr "序列号"
@@ -6459,8 +6584,9 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: stock/admin.py:87 templates/js/translated/stock.js:642
-#: templates/js/translated/stock.js:812 templates/js/translated/stock.js:2765
+#: stock/admin.py:87 templates/js/translated/part.js:749
+#: templates/js/translated/stock.js:641 templates/js/translated/stock.js:811
+#: templates/js/translated/stock.js:2760
msgid "Serial"
msgstr ""
@@ -6515,13 +6641,9 @@ msgstr ""
msgid "Purchase Order ID"
msgstr ""
-#: stock/admin.py:107 templates/js/translated/stock.js:1910
-msgid "Stocktake"
-msgstr ""
-
#: stock/admin.py:108 stock/models.py:764
#: stock/templates/stock/item_base.html:427
-#: templates/js/translated/stock.js:1924
+#: templates/js/translated/stock.js:1919
msgid "Expiry Date"
msgstr ""
@@ -6936,7 +7058,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2912
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2907
msgid "Install Stock Item"
msgstr ""
@@ -6944,7 +7066,7 @@ msgstr ""
msgid "Delete all test results for this stock item"
msgstr ""
-#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1561
+#: stock/templates/stock/item.html:327 templates/js/translated/stock.js:1560
msgid "Add Test Result"
msgstr ""
@@ -7117,10 +7239,6 @@ msgstr ""
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:445
-msgid "Last Stocktake"
-msgstr ""
-
#: stock/templates/stock/item_base.html:449
msgid "No stocktake performed"
msgstr ""
@@ -7394,7 +7512,8 @@ msgstr ""
#: templates/InvenTree/notifications/notifications.html:10
#: templates/InvenTree/notifications/sidebar.html:5
-#: templates/InvenTree/settings/sidebar.html:17 templates/notifications.html:5
+#: templates/InvenTree/settings/sidebar.html:17
+#: templates/InvenTree/settings/sidebar.html:35 templates/notifications.html:5
msgid "Notifications"
msgstr ""
@@ -7475,6 +7594,14 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
+#: templates/InvenTree/settings/notifications.html:9
+msgid "Global Notification Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/notifications.html:18
+msgid "Slug"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "商品设置"
@@ -7492,7 +7619,7 @@ msgid "Part Parameter Templates"
msgstr "商品参数模板"
#: templates/InvenTree/settings/plugin.html:10
-#: templates/InvenTree/settings/sidebar.html:55
+#: templates/InvenTree/settings/sidebar.html:57
msgid "Plugin Settings"
msgstr ""
@@ -7501,7 +7628,7 @@ msgid "Changing the settings below require you to immediately restart the server
msgstr ""
#: templates/InvenTree/settings/plugin.html:38
-#: templates/InvenTree/settings/sidebar.html:57
+#: templates/InvenTree/settings/sidebar.html:59
msgid "Plugins"
msgstr ""
@@ -7669,67 +7796,67 @@ msgstr "未设置值"
msgid "Edit setting"
msgstr "编辑设置"
-#: templates/InvenTree/settings/settings.html:117
+#: templates/InvenTree/settings/settings.html:118
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:119
+#: templates/InvenTree/settings/settings.html:120
msgid "Edit Notification Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:122
+#: templates/InvenTree/settings/settings.html:123
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:124
+#: templates/InvenTree/settings/settings.html:125
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:214
+#: templates/InvenTree/settings/settings.html:215
msgid "No category parameter templates found"
msgstr "未找到类别参数模板"
-#: templates/InvenTree/settings/settings.html:236
-#: templates/InvenTree/settings/settings.html:361
+#: templates/InvenTree/settings/settings.html:237
+#: templates/InvenTree/settings/settings.html:362
msgid "Edit Template"
msgstr "编辑模板"
-#: templates/InvenTree/settings/settings.html:237
-#: templates/InvenTree/settings/settings.html:362
+#: templates/InvenTree/settings/settings.html:238
+#: templates/InvenTree/settings/settings.html:363
msgid "Delete Template"
msgstr "删除模板"
-#: templates/InvenTree/settings/settings.html:277
+#: templates/InvenTree/settings/settings.html:278
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: templates/InvenTree/settings/settings.html:322
+#: templates/InvenTree/settings/settings.html:323
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: templates/InvenTree/settings/settings.html:334
+#: templates/InvenTree/settings/settings.html:335
msgid "No part parameter templates found"
msgstr "未找到商品参数模板"
-#: templates/InvenTree/settings/settings.html:338
+#: templates/InvenTree/settings/settings.html:339
#: templates/js/translated/news.js:29
#: templates/js/translated/notification.js:36
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/settings.html:380
+#: templates/InvenTree/settings/settings.html:381
msgid "Create Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:399
+#: templates/InvenTree/settings/settings.html:400
msgid "Edit Part Parameter Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:413
+#: templates/InvenTree/settings/settings.html:414
msgid "Any parameters which reference this template will also be deleted"
msgstr ""
-#: templates/InvenTree/settings/settings.html:421
+#: templates/InvenTree/settings/settings.html:422
msgid "Delete Part Parameter Template"
msgstr ""
@@ -7758,12 +7885,12 @@ msgid "Search Settings"
msgstr "搜索设置"
#: templates/InvenTree/settings/sidebar.html:19
-#: templates/InvenTree/settings/sidebar.html:37
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Label Printing"
msgstr ""
#: templates/InvenTree/settings/sidebar.html:21
-#: templates/InvenTree/settings/sidebar.html:39
+#: templates/InvenTree/settings/sidebar.html:41
msgid "Reporting"
msgstr ""
@@ -7775,7 +7902,7 @@ msgstr ""
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:43
+#: templates/InvenTree/settings/sidebar.html:45
msgid "Categories"
msgstr ""
@@ -7945,64 +8072,64 @@ msgstr ""
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:28
+#: templates/InvenTree/settings/user_display.html:29
msgid "Theme Settings"
msgstr "主题设置"
-#: templates/InvenTree/settings/user_display.html:38
+#: templates/InvenTree/settings/user_display.html:39
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:49
+#: templates/InvenTree/settings/user_display.html:50
msgid "Set Theme"
msgstr "设置主题"
-#: templates/InvenTree/settings/user_display.html:57
+#: templates/InvenTree/settings/user_display.html:58
msgid "Language Settings"
msgstr "语言设置"
-#: templates/InvenTree/settings/user_display.html:66
+#: templates/InvenTree/settings/user_display.html:67
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:82
+#: templates/InvenTree/settings/user_display.html:83
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% 已翻译"
-#: templates/InvenTree/settings/user_display.html:84
+#: templates/InvenTree/settings/user_display.html:85
msgid "No translations available"
msgstr "无可用翻译"
-#: templates/InvenTree/settings/user_display.html:91
+#: templates/InvenTree/settings/user_display.html:92
msgid "Set Language"
msgstr "设置语言"
-#: templates/InvenTree/settings/user_display.html:94
+#: templates/InvenTree/settings/user_display.html:95
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:96
+#: templates/InvenTree/settings/user_display.html:97
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "and hidden."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:98
+#: templates/InvenTree/settings/user_display.html:99
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:105
+#: templates/InvenTree/settings/user_display.html:106
msgid "Help the translation efforts!"
msgstr "帮助翻译工作!"
-#: templates/InvenTree/settings/user_display.html:106
+#: templates/InvenTree/settings/user_display.html:107
msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user_display.html:107
+#: templates/InvenTree/settings/user_display.html:108
msgid "InvenTree Translation Project"
msgstr ""
@@ -8080,7 +8207,7 @@ msgstr ""
msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
-#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:646
+#: templates/account/email_confirm.html:22 templates/js/translated/forms.js:649
msgid "Confirm"
msgstr "确认"
@@ -8313,7 +8440,7 @@ msgid "Click on the following link to view this part"
msgstr ""
#: templates/email/low_stock_notification.html:19
-#: templates/js/translated/part.js:2445
+#: templates/js/translated/part.js:2726
msgid "Minimum Quantity"
msgstr ""
@@ -8466,7 +8593,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1089
+#: templates/js/translated/barcode.js:524 templates/js/translated/stock.js:1088
msgid "Remove stock item"
msgstr ""
@@ -8548,16 +8675,6 @@ msgstr ""
msgid "Download BOM Template"
msgstr ""
-#: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312
-#: templates/js/translated/order.js:998 templates/js/translated/tables.js:145
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313
-#: templates/js/translated/order.js:999
-msgid "Select file format"
-msgstr ""
-
#: templates/js/translated/bom.js:320
msgid "Multi Level BOM"
msgstr ""
@@ -8688,7 +8805,7 @@ msgid "Includes variant and substitute stock"
msgstr ""
#: templates/js/translated/bom.js:1145 templates/js/translated/build.js:1923
-#: templates/js/translated/part.js:790 templates/js/translated/part.js:1572
+#: templates/js/translated/part.js:1061 templates/js/translated/part.js:1843
msgid "Includes variant stock"
msgstr ""
@@ -8773,13 +8890,13 @@ msgstr "生产订单未完成"
msgid "Complete Build Order"
msgstr "生产订单完成"
-#: templates/js/translated/build.js:317 templates/js/translated/stock.js:95
-#: templates/js/translated/stock.js:237
+#: templates/js/translated/build.js:317 templates/js/translated/stock.js:94
+#: templates/js/translated/stock.js:236
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:319 templates/js/translated/stock.js:97
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/build.js:319 templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:238
msgid "Latest serial number"
msgstr ""
@@ -8987,9 +9104,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1466
-#: templates/js/translated/part.js:2003 templates/js/translated/stock.js:1725
-#: templates/js/translated/stock.js:2428
+#: templates/js/translated/build.js:2574 templates/js/translated/part.js:1737
+#: templates/js/translated/part.js:2284 templates/js/translated/stock.js:1724
+#: templates/js/translated/stock.js:2423
msgid "Select"
msgstr ""
@@ -9001,7 +9118,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2695
+#: templates/js/translated/build.js:2652 templates/js/translated/stock.js:2690
msgid "No user information"
msgstr "没有用户信息"
@@ -9074,34 +9191,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:652
-#: templates/js/translated/company.js:913 templates/js/translated/part.js:661
-#: templates/js/translated/part.js:747
+#: templates/js/translated/company.js:913 templates/js/translated/part.js:664
+#: templates/js/translated/part.js:1018
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:656
-#: templates/js/translated/company.js:917 templates/js/translated/part.js:665
-#: templates/js/translated/part.js:751
+#: templates/js/translated/company.js:917 templates/js/translated/part.js:668
+#: templates/js/translated/part.js:1022
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:784 templates/js/translated/part.js:870
+#: templates/js/translated/company.js:784 templates/js/translated/part.js:1141
msgid "No parameters found"
msgstr "无指定参数"
-#: templates/js/translated/company.js:821 templates/js/translated/part.js:912
+#: templates/js/translated/company.js:821 templates/js/translated/part.js:1183
msgid "Edit parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:822 templates/js/translated/part.js:913
+#: templates/js/translated/company.js:822 templates/js/translated/part.js:1184
msgid "Delete parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:841 templates/js/translated/part.js:930
+#: templates/js/translated/company.js:841 templates/js/translated/part.js:1201
msgid "Edit Parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:852 templates/js/translated/part.js:942
+#: templates/js/translated/company.js:852 templates/js/translated/part.js:1213
msgid "Delete Parameter"
msgstr "删除参数"
@@ -9181,61 +9298,61 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:369 templates/js/translated/forms.js:384
-#: templates/js/translated/forms.js:398 templates/js/translated/forms.js:412
+#: templates/js/translated/forms.js:372 templates/js/translated/forms.js:387
+#: templates/js/translated/forms.js:401 templates/js/translated/forms.js:415
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:371
+#: templates/js/translated/forms.js:374
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:386
+#: templates/js/translated/forms.js:389
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:400
+#: templates/js/translated/forms.js:403
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:414
+#: templates/js/translated/forms.js:417
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:672
+#: templates/js/translated/forms.js:675
msgid "Keep this form open"
msgstr ""
-#: templates/js/translated/forms.js:773
+#: templates/js/translated/forms.js:776
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1266 templates/modals.html:19
+#: templates/js/translated/forms.js:1269 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1703
+#: templates/js/translated/forms.js:1706
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1919 templates/search.html:29
+#: templates/js/translated/forms.js:1922 templates/search.html:29
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:2172
+#: templates/js/translated/forms.js:2175
msgid "Clear input"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "File Column"
msgstr ""
-#: templates/js/translated/forms.js:2628
+#: templates/js/translated/forms.js:2631
msgid "Field Name"
msgstr ""
-#: templates/js/translated/forms.js:2640
+#: templates/js/translated/forms.js:2643
msgid "Select Columns"
msgstr ""
@@ -9256,7 +9373,7 @@ msgid "Labels sent to printer"
msgstr ""
#: templates/js/translated/label.js:60 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1113
+#: templates/js/translated/stock.js:1112
msgid "Select Stock Items"
msgstr "选择库存项"
@@ -9590,7 +9707,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2184
+#: templates/js/translated/order.js:1584 templates/js/translated/stock.js:2179
msgid "Stock Status"
msgstr ""
@@ -9614,7 +9731,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:1982 templates/js/translated/part.js:983
+#: templates/js/translated/order.js:1982 templates/js/translated/part.js:1254
msgid "No purchase orders found"
msgstr ""
@@ -9647,8 +9764,8 @@ msgstr ""
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1085
-#: templates/js/translated/part.js:1137
+#: templates/js/translated/order.js:2317 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1408
msgid "Total Quantity"
msgstr ""
@@ -9666,11 +9783,11 @@ msgid "Total Price"
msgstr ""
#: templates/js/translated/order.js:2388 templates/js/translated/order.js:3900
-#: templates/js/translated/part.js:1121
+#: templates/js/translated/part.js:1392
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1166
+#: templates/js/translated/order.js:2447 templates/js/translated/part.js:1437
msgid "Receive line item"
msgstr ""
@@ -9791,7 +9908,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:3623 templates/js/translated/order.js:3712
-#: templates/js/translated/stock.js:1641
+#: templates/js/translated/stock.js:1640
msgid "Shipped to customer"
msgstr ""
@@ -9835,334 +9952,358 @@ msgstr ""
msgid "No matching lines"
msgstr ""
-#: templates/js/translated/part.js:52
+#: templates/js/translated/part.js:55
msgid "Part Attributes"
msgstr "商品属性"
-#: templates/js/translated/part.js:56
+#: templates/js/translated/part.js:59
msgid "Part Creation Options"
msgstr "商品创建选项"
-#: templates/js/translated/part.js:60
+#: templates/js/translated/part.js:63
msgid "Part Duplication Options"
msgstr "商品重复选项"
-#: templates/js/translated/part.js:64
+#: templates/js/translated/part.js:67
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:78
+#: templates/js/translated/part.js:81
msgid "Add Part Category"
msgstr "增加商品类别"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:171
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:169
+#: templates/js/translated/part.js:172
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:176
+#: templates/js/translated/part.js:179
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:177
+#: templates/js/translated/part.js:180
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:184
+#: templates/js/translated/part.js:187
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:205
msgid "Copy Category Parameters"
msgstr "复制类别参数"
-#: templates/js/translated/part.js:203
+#: templates/js/translated/part.js:206
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:211
+#: templates/js/translated/part.js:214
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:212
+#: templates/js/translated/part.js:215
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:271
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:272
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:277
+#: templates/js/translated/part.js:280
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:284
+#: templates/js/translated/part.js:287
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:285
+#: templates/js/translated/part.js:288
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:298
+#: templates/js/translated/part.js:301
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:313 templates/js/translated/stock.js:122
+#: templates/js/translated/part.js:316 templates/js/translated/stock.js:121
msgid "Icon (optional) - Explore all available icons on"
msgstr ""
-#: templates/js/translated/part.js:329
+#: templates/js/translated/part.js:332
msgid "Edit Part Category"
msgstr "编辑商品类别"
-#: templates/js/translated/part.js:342
+#: templates/js/translated/part.js:345
msgid "Are you sure you want to delete this part category?"
msgstr ""
-#: templates/js/translated/part.js:347
+#: templates/js/translated/part.js:350
msgid "Move to parent category"
msgstr ""
-#: templates/js/translated/part.js:356
+#: templates/js/translated/part.js:359
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: templates/js/translated/part.js:360
+#: templates/js/translated/part.js:363
msgid "Action for parts in this category"
msgstr ""
-#: templates/js/translated/part.js:365
+#: templates/js/translated/part.js:368
msgid "Action for child categories"
msgstr ""
-#: templates/js/translated/part.js:394
+#: templates/js/translated/part.js:397
msgid "Edit Part"
msgstr "编辑商品"
-#: templates/js/translated/part.js:396
+#: templates/js/translated/part.js:399
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:407
+#: templates/js/translated/part.js:410
msgid "Create Part Variant"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:462
msgid "Active Part"
msgstr ""
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:463
msgid "Part cannot be deleted as it is currently active"
msgstr ""
-#: templates/js/translated/part.js:474
+#: templates/js/translated/part.js:477
msgid "Deleting this part cannot be reversed"
msgstr ""
-#: templates/js/translated/part.js:476
+#: templates/js/translated/part.js:479
msgid "Any stock items for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:477
+#: templates/js/translated/part.js:480
msgid "This part will be removed from any Bills of Material"
msgstr ""
-#: templates/js/translated/part.js:478
+#: templates/js/translated/part.js:481
msgid "All manufacturer and supplier information for this part will be deleted"
msgstr ""
-#: templates/js/translated/part.js:485
+#: templates/js/translated/part.js:488
msgid "Delete Part"
msgstr ""
-#: templates/js/translated/part.js:521
+#: templates/js/translated/part.js:524
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:526
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:528
+#: templates/js/translated/part.js:531
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:530
+#: templates/js/translated/part.js:533
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:547
+#: templates/js/translated/part.js:550
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:557
+#: templates/js/translated/part.js:560
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:560
+#: templates/js/translated/part.js:563
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:585
+#: templates/js/translated/part.js:588
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:609 templates/js/translated/part.js:1554
+#: templates/js/translated/part.js:612 templates/js/translated/part.js:1825
#: templates/js/translated/table_filters.js:488
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:619
+#: templates/js/translated/part.js:622
msgid "No stock available"
msgstr ""
-#: templates/js/translated/part.js:653 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:656 templates/js/translated/part.js:1010
msgid "Trackable part"
msgstr "可追溯商品"
-#: templates/js/translated/part.js:657 templates/js/translated/part.js:743
+#: templates/js/translated/part.js:660 templates/js/translated/part.js:1014
msgid "Virtual part"
msgstr "虚拟商品"
-#: templates/js/translated/part.js:669
+#: templates/js/translated/part.js:672
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:673
+#: templates/js/translated/part.js:676
msgid "Salable part"
msgstr "可销售商品"
-#: templates/js/translated/part.js:815
+#: templates/js/translated/part.js:761
+msgid "Stock item has not been checked recently"
+msgstr ""
+
+#: templates/js/translated/part.js:769
+msgid "Update item"
+msgstr ""
+
+#: templates/js/translated/part.js:770
+msgid "Delete item"
+msgstr ""
+
+#: templates/js/translated/part.js:871
+msgid "No stocktake information available"
+msgstr ""
+
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:933
+msgid "Edit Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:914 templates/js/translated/part.js:945
+msgid "Delete Stocktake Entry"
+msgstr ""
+
+#: templates/js/translated/part.js:1086
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1507
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1531
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1327 templates/js/translated/part.js:1655
+#: templates/js/translated/part.js:1598 templates/js/translated/part.js:1936
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1521
+#: templates/js/translated/part.js:1792
msgid "No category"
msgstr "没有分类"
-#: templates/js/translated/part.js:1552
+#: templates/js/translated/part.js:1823
msgid "No stock"
msgstr ""
-#: templates/js/translated/part.js:1576
+#: templates/js/translated/part.js:1847
msgid "Allocated to build orders"
msgstr ""
-#: templates/js/translated/part.js:1580
+#: templates/js/translated/part.js:1851
msgid "Allocated to sales orders"
msgstr ""
-#: templates/js/translated/part.js:1679 templates/js/translated/part.js:1922
-#: templates/js/translated/stock.js:2387
+#: templates/js/translated/part.js:1960 templates/js/translated/part.js:2203
+#: templates/js/translated/stock.js:2382
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1695
+#: templates/js/translated/part.js:1976
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1761
+#: templates/js/translated/part.js:2042
msgid "Set the part category for the selected parts"
msgstr ""
-#: templates/js/translated/part.js:1766
+#: templates/js/translated/part.js:2047
msgid "Set Part Category"
msgstr "设置商品类别"
-#: templates/js/translated/part.js:1771
+#: templates/js/translated/part.js:2052
msgid "Select Part Category"
msgstr ""
-#: templates/js/translated/part.js:1784
+#: templates/js/translated/part.js:2065
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1942 templates/js/translated/stock.js:2407
+#: templates/js/translated/part.js:2223 templates/js/translated/stock.js:2402
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:2022
+#: templates/js/translated/part.js:2303
msgid "Load Subcategories"
msgstr ""
-#: templates/js/translated/part.js:2038
+#: templates/js/translated/part.js:2319
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:2102
+#: templates/js/translated/part.js:2383
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:2153 templates/js/translated/stock.js:1338
+#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:1337
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:2154 templates/js/translated/stock.js:1339
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/part.js:2435 templates/js/translated/stock.js:1338
+#: templates/js/translated/stock.js:1598
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:2160
+#: templates/js/translated/part.js:2441
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2182
+#: templates/js/translated/part.js:2463
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2196
+#: templates/js/translated/part.js:2477
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2277 templates/js/translated/part.js:2278
+#: templates/js/translated/part.js:2558 templates/js/translated/part.js:2559
msgid "No date specified"
msgstr ""
-#: templates/js/translated/part.js:2280
+#: templates/js/translated/part.js:2561
msgid "Specified date is in the past"
msgstr ""
-#: templates/js/translated/part.js:2286
+#: templates/js/translated/part.js:2567
msgid "Speculative"
msgstr ""
-#: templates/js/translated/part.js:2336
+#: templates/js/translated/part.js:2617
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2342
+#: templates/js/translated/part.js:2623
msgid "Error fetching scheduling information for this part"
msgstr ""
-#: templates/js/translated/part.js:2438
+#: templates/js/translated/part.js:2719
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2454
+#: templates/js/translated/part.js:2735
msgid "Maximum Quantity"
msgstr ""
-#: templates/js/translated/part.js:2499
+#: templates/js/translated/part.js:2780
msgid "Minimum Stock Level"
msgstr ""
@@ -10290,388 +10431,388 @@ msgstr ""
msgid "Remove results"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:104
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:114
+#: templates/js/translated/stock.js:113
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:147
msgid "Edit Stock Location"
msgstr "编辑仓储地点"
-#: templates/js/translated/stock.js:163
+#: templates/js/translated/stock.js:162
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:177
+#: templates/js/translated/stock.js:176
msgid "Are you sure you want to delete this stock location?"
msgstr "确实要删除此仓储地点吗?"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:183
msgid "Move to parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:193
+#: templates/js/translated/stock.js:192
msgid "Delete Stock Location"
msgstr "删除仓储地点"
-#: templates/js/translated/stock.js:197
+#: templates/js/translated/stock.js:196
msgid "Action for stock items in this stock location"
msgstr ""
-#: templates/js/translated/stock.js:202
+#: templates/js/translated/stock.js:201
msgid "Action for sub-locations"
msgstr ""
-#: templates/js/translated/stock.js:256
+#: templates/js/translated/stock.js:255
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:297
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:304
+#: templates/js/translated/stock.js:303
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:368
msgid "Stock item duplicated"
msgstr ""
-#: templates/js/translated/stock.js:389
+#: templates/js/translated/stock.js:388
msgid "Duplicate Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:405
+#: templates/js/translated/stock.js:404
msgid "Are you sure you want to delete this stock item?"
msgstr ""
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/stock.js:409
msgid "Delete Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:431
+#: templates/js/translated/stock.js:430
msgid "Edit Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:481
+#: templates/js/translated/stock.js:480
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:494
+#: templates/js/translated/stock.js:493
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:518
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:523 templates/js/translated/stock.js:524
+#: templates/js/translated/stock.js:522 templates/js/translated/stock.js:523
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:540
+#: templates/js/translated/stock.js:539
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:560
+#: templates/js/translated/stock.js:559
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:568
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:692
+#: templates/js/translated/stock.js:691
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:693
+#: templates/js/translated/stock.js:692
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:770
+#: templates/js/translated/stock.js:769
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:771
+#: templates/js/translated/stock.js:770
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:773
+#: templates/js/translated/stock.js:772
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:774
+#: templates/js/translated/stock.js:773
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:863
+#: templates/js/translated/stock.js:862
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:864
+#: templates/js/translated/stock.js:863
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:959
+#: templates/js/translated/stock.js:958
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:960
+#: templates/js/translated/stock.js:959
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:966
+#: templates/js/translated/stock.js:965
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:966
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:971
+#: templates/js/translated/stock.js:970
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:972
+#: templates/js/translated/stock.js:971
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:976
+#: templates/js/translated/stock.js:975
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:977 users/models.py:220
+#: templates/js/translated/stock.js:976 users/models.py:221
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:981
+#: templates/js/translated/stock.js:980
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1074
+#: templates/js/translated/stock.js:1073
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1114
+#: templates/js/translated/stock.js:1113
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1141
+#: templates/js/translated/stock.js:1140
msgid "Confirm stock adjustment"
msgstr ""
-#: templates/js/translated/stock.js:1277
+#: templates/js/translated/stock.js:1276
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1279
+#: templates/js/translated/stock.js:1278
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1284
+#: templates/js/translated/stock.js:1283
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1331
+#: templates/js/translated/stock.js:1330
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1334
+#: templates/js/translated/stock.js:1333
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1360
+#: templates/js/translated/stock.js:1359
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1417
+#: templates/js/translated/stock.js:1416
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1582
+#: templates/js/translated/stock.js:1581
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1603
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1633
+#: templates/js/translated/stock.js:1632
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:1637
+#: templates/js/translated/stock.js:1636
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1645
+#: templates/js/translated/stock.js:1644
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1651
+#: templates/js/translated/stock.js:1650
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1820
+#: templates/js/translated/stock.js:1815
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:1825
+#: templates/js/translated/stock.js:1820
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1828
+#: templates/js/translated/stock.js:1823
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1831
+#: templates/js/translated/stock.js:1826
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1828
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1830
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1838
+#: templates/js/translated/stock.js:1833
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1842
+#: templates/js/translated/stock.js:1837
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1844
+#: templates/js/translated/stock.js:1839
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1846
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1853
+#: templates/js/translated/stock.js:1848
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1855
+#: templates/js/translated/stock.js:1850
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1854
#: templates/js/translated/table_filters.js:216
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1989
+#: templates/js/translated/stock.js:1984
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:2026
+#: templates/js/translated/stock.js:2021
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:2199
+#: templates/js/translated/stock.js:2194
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2213
+#: templates/js/translated/stock.js:2208
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2214
+#: templates/js/translated/stock.js:2209
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2446
+#: templates/js/translated/stock.js:2441
msgid "Load Subloactions"
msgstr ""
-#: templates/js/translated/stock.js:2541
+#: templates/js/translated/stock.js:2536
msgid "Details"
msgstr "详情"
-#: templates/js/translated/stock.js:2557
+#: templates/js/translated/stock.js:2552
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2579
+#: templates/js/translated/stock.js:2574
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2598
+#: templates/js/translated/stock.js:2593
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/stock.js:2612
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2635
+#: templates/js/translated/stock.js:2630
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2658
+#: templates/js/translated/stock.js:2653
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2661
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2742
+#: templates/js/translated/stock.js:2737
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2793 templates/js/translated/stock.js:2829
+#: templates/js/translated/stock.js:2788 templates/js/translated/stock.js:2824
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2845
+#: templates/js/translated/stock.js:2840
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2866
+#: templates/js/translated/stock.js:2861
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2867
+#: templates/js/translated/stock.js:2862
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2869
+#: templates/js/translated/stock.js:2864
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2870
+#: templates/js/translated/stock.js:2865
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2871
+#: templates/js/translated/stock.js:2866
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2872
+#: templates/js/translated/stock.js:2867
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2885
+#: templates/js/translated/stock.js:2880
msgid "Select part to install"
msgstr ""
@@ -10696,7 +10837,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:516
+#: templates/js/translated/table_filters.js:520
msgid "Has Pricing"
msgstr ""
@@ -10912,6 +11053,10 @@ msgstr ""
msgid "Purchasable"
msgstr ""
+#: templates/js/translated/table_filters.js:504
+msgid "Has stocktake entries"
+msgstr ""
+
#: templates/js/translated/tables.js:70
msgid "Display calendar view"
msgstr "显示日历"
@@ -11206,35 +11351,35 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:207
+#: users/models.py:208
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:215
+#: users/models.py:216
msgid "Group"
msgstr "群组"
-#: users/models.py:218
+#: users/models.py:219
msgid "View"
msgstr "视图"
-#: users/models.py:218
+#: users/models.py:219
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:220
+#: users/models.py:221
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:222
+#: users/models.py:223
msgid "Change"
msgstr "更改"
-#: users/models.py:222
+#: users/models.py:223
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:224
+#: users/models.py:225
msgid "Permission to delete items"
msgstr "删除项目权限"